如何从 Json 中获取特定值?

Posted

技术标签:

【中文标题】如何从 Json 中获取特定值?【英文标题】:how to get the particular value from Json? 【发布时间】:2017-07-05 09:48:48 【问题描述】:

我有如下所示的 Json 数据,我需要获取默认键值对为 1 的数据,然后我需要获取剩余的字典数据并需要传递给用户以显示任何谁能告诉我如何实现这个?

而我的代码如下所示

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

【问题讨论】:

你几乎完成了你的错误是什么?只需将addressDict添加到一个满足条件默认为1的数组中。然后使用该数组显示 我需要获取默认键值对为一个的数据,然后需要显示数据@DSDharma 这只是我问@DSDharma的方式 对于初学者来说,即使简单也不会太难,也只需找到并做它。祝你好运 【参考方案1】:

您可以检查 Default 是否等于 1 并将这些值添加到数组中。

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:准备你的模型,如下面的代码 sn-p 所示。

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:声明一个数组来存储解析后的地址。

var addressesArray = [Addresses]()

第三步:

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)
                           
                          

                        
                    
                
            

就是这样,注意数据类型,你可以使用addressesArray来显示数据。

【讨论】:

AmountPaid = 1200;类别 = 1; “CLASS_ID”=2021; DateOfReciept = "2017-06-08T00:00:00";说明 = "[\"des\":\"录取\",\"金额\":1200,\"des\":\"到期\",\"金额\":0]"; MasterID = E0017;] 如果我们有这种 JSON 数据会怎样 您的数据不是 json 格式。使用 (jsoneditoronline.org) 在线 jsonfnrmatter 验证你的 json 数据 ***.com/questions/45136583/… 这是我的链接,你能帮我吗 是的,当然@Bikesh Thakur。

以上是关于如何从 Json 中获取特定值?的主要内容,如果未能解决你的问题,请参考以下文章

当我只想获取字典中的特定值时,如何解码字典值的 JSON 数组?

如何获取特定的 json 值 - python

如何从 JSON 对象中获取特定的键值

如何从 PHP 中获取 JSON 值?

如何使用目标 C 解析 JSON 并获取特定值? [复制]

如何在 C# 中获取 json 属性的特定部分?