从 JSON 创建对象

Posted

技术标签:

【中文标题】从 JSON 创建对象【英文标题】:Creating Objects from JSON 【发布时间】:2012-07-29 08:18:08 【问题描述】:

我希望能够使用从 Web 服务接收到的 JSON 字符串创建 NSArray 或 NSDictionary。我正在使用 json 框架来执行此操作。响应字符串将类似于以下内容:

count:2,
     data:["ID":8,
            "Title":"Test Title",
            "Author":"Test Author",
            "Price":"18.00",
            "Edition":"1st",
            "Condition":"Good",
            "UploadDate":"2012-07-28 07:25:56.0"
            ,     
          "ID":9,
           "Title":"Test Title",
           "Author":"Test Author",
           "Price":"18.000000000000",
           "Edition":"1st",
           "Condition":"Good",
           "UploadDate":"2012-07-28 07:27:06.0"
          
          ]
  

我的问题是,从“数据”数组中获取所有数据并使用它来创建 NSArray 或 NSDictionary 的最有效方法是什么?任何帮助将不胜感激

【问题讨论】:

好吧,如果您已经在使用框架,该框架不应该为您解决这个问题吗? 你使用的是哪个框架? 来自 Stig Brauest 的 JSON 框架。你能举个例子吗?谢谢。 @TimStullich:发布的数据不是有效的 JSON 数据。只需在JSONLint 中尝试。必须引用所有键(在您的情况下为“count”和“data”)。 谢谢。我修复了这些错误。 【参考方案1】:

我使用 RestKit 进行 JSON 解析。它拥有从服务器获取 json、将其转换为字典并从那里转换为您可以使用的对象所需的一切。这可能比你敢于希望的要多,但它就像一种魅力。查看https://github.com/RestKit/RestKit 了解更多信息。

【讨论】:

【参考方案2】:

ios5 开始,json 解析器已被集成为 SDK 原生组件,请参阅以下链接 http://www.raywenderlich.com/5492/working-with-json-in-ios-5。 您将创建一个具有 2 个键“count”和“data”的 NSDictionary,然后您将使用 objectForKey 和“data”键获取 NSArray。

【讨论】:

以上是关于从 JSON 创建对象的主要内容,如果未能解决你的问题,请参考以下文章

从数组和多维数组创建 JSON 对象

从 json 创建 c# 对象

通过php从mysql结果创建json对象[重复]

从 json 对象创建 pandas 数据框

从 Json 字符串创建 Python 对象 [重复]

从 JSON 创建动态对象时面临的问题