how to get the particular value from Json?

≯℡__Kan透↙ 提交于 2019-12-13 22:59:14

问题


I am having the Json data as shown below in this I need to get the data that which key value pair for default is 1 then i need to get the remaining dictionaries data and need to be passed to the user to display can any one tell me how to implement this ?

And my code is as shown below

            if let addressArray = jsonObj!.value(forKey: "address") as? NSArray{
                    for array in addressArray {
                        if let addressDict = array as? NSDictionary{
                            if let Default = addressDict.value(forKey: "default"){

                            }
                        }
                    }
                }
 "address": [
    {
      "default": 0, 
      "number": 9123456711, 
      "name": "Ramesh", 
      "address": "No:11/111 ,cross street,Nungambakkam,mylapore,chennai :600088"
    }, 
    {
      "default": 1, 
      "number": 8123456722, 
      "name": "Vignesh", 
      "address": "No:22/222 ,cross street,Perambur,chennai :600012"
    }, 
    {
      "default": 0, 
      "number": 7123456733, 
      "name": "Rajesh", 
      "address": "No:33/333 ,cross street,Villivakkam,chennai :600045"
    }
  ]

回答1:


You can check if Default equals 1 and add those values to an array.

var defaultArray = [NSDictionary]()
if let addressArray = jsonObj!.value(forKey: "address") as? NSArray{
                    for array in addressArray {
                        if let addressDict = array as? NSDictionary{
                            if let Default = addressDict.value(forKey: "default"){
                               if Default == 1 {
                               defaultArray.append(addressDict)
                              }
                            }
                        }
                    }
                }



回答2:


Step1: Prepare your model as shown in below code snippet.

class Addresses: NSObject {

var default = 0
var number = 0
var name = String()
var address = String()

init?(dictionary:[String:Any]) {

    guard let default = dictionary["default"],
        let number = dictionary["number"],
        let name = dictionary["name"],
        let address = dictionary["address"]
        else {
        return nil
    }
    self.default = default
    self.number = number
    self.name = name
    self.address = address
  }
 }

Step2: Declare an array to store parsed addresses.

var addressesArray = [Addresses]()

Step3:

if let addressArray = jsonObj!.value(forKey: "address") as? NSArray{
                for array in addressArray {
                    if let addressDict = array as? NSDictionary{
                        if let defaultValue = addressDict.value(forKey: "default") as? Int{
                            if defaultValue == 1 {
                             if let address = Addresses(dictionary: addressDict) {
                                addressesArray.append(address)
                           }
                          }

                        }
                    }
                }
            }

Thats it, take care of datatypes, and you can use addressesArray to display data.



来源:https://stackoverflow.com/questions/44922697/how-to-get-the-particular-value-from-json

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!