how to get the particular value from Json?

2020-01-20 06:48发布

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"
    }
  ]

标签: ios swift3
2条回答
Summer. ? 凉城
2楼-- · 2020-01-20 07:14

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)
                              }
                            }
                        }
                    }
                }
查看更多
你好瞎i
3楼-- · 2020-01-20 07:14

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.

查看更多
登录 后发表回答