在 iOS 上下载和解析 JSON 工具包

Posted

技术标签:

【中文标题】在 iOS 上下载和解析 JSON 工具包【英文标题】:Downloading and parsing JSON kit on iOS 【发布时间】:2011-09-29 01:14:57 【问题描述】:

我正在尝试将其从网络服务器解析为 ios 中的 tableview


  "transactions": [
    
    "ID": "350",
    "description": "Macbook Pro 17 inch",
    "price": "2811.83"
    ,
    
    "ID": "351",
    "description": "Macbook - white",
    "price": "1720.10"
    ,
    
    "ID": "352",
    "description": "iPad 2",
    "price": "650.00"
    ,
    
    "ID": "353",
    "description": "Macbook Pro 17 inch",
    "price": "3233.98"
    ,
    
    "ID": "354",
    "description": "Macbook Pro 15 inch",
    "price": "2100.55"
    ,
    
    "ID": "355",
    "description": "Macbook Air",
    "price": "899.99"
    ,
    
    "ID": "356",
    "description": "Mac Pro",
    "price": "3400.77"
    
  ]

我唯一想要的就是描述和价格。我需要将每件商品的价格相加并得出总价。每个事务名称都需要存储在NSArray 中,然后显示在UITableView 中。

有什么帮助吗? JSONkit 没有给我 SBJSON 解析器

【问题讨论】:

你真的尝试过什么吗?给我们一些代码,我们就会发现问题。 【参考方案1】:

我真的很喜欢 JSONKit,因为它简单且速度快。您必须意识到,它返回的是作为对象的***构造 - 所以您必须考虑它。它将是一个 NSDictionary(因此您可以对其进行类型转换),并且它将具有一个关键的“事务”。

这个键会返回一个由 NSDictionary 对象组成的 NSArray,每个对象都有键 ID、描述和价格。

像这样(例如,itemListData 是从 URL 获取的 JSON 数据):

JSONDecoder *decoder = [JSONDecoder decoderWithParseOptions:JKParseOptionStrict];
NSData *immutableItemList = [itemListData copy];
NSArray *returnedData = (NSArray *) [[decoder objectWithData:immutableItemList] objectForKey:@"transactions"];

因此,我们获取原始 JSON 数据,实例化解码器,然后将其解码为字典 - 并检索字典中的 1 对象(在本例中为数组,因为它就是这样)。对于新手来说还不错吧?

(我应该补充一下 - 我制作 NSData 的不可变副本的原因是,这段代码 sn-p 在异步下载中,在 connectionDidFinishLoading 方法中触发。)

【讨论】:

【参考方案2】:

嘿,伙计,我过去所做的是去 facebook 并下载他们的开发人员 sdk。在那个 sdk 中有一个很棒的 JSON 解析工具。你可以在这里找到它http://developers.facebook.com/docs/reference/iossdk/ 然后你只需将它添加到你的项目中并在你的标题中做一个

 #import "JSON.h"

然后当你得到那个字符串时你说

NSDictionary *data = [my_data_string JSONValue];
NSArray *transactions = [data objectForKey:@"Transactions"];

这应该有效:)

【讨论】:

以上是关于在 iOS 上下载和解析 JSON 工具包的主要内容,如果未能解决你的问题,请参考以下文章

JSON在线解析,新版本JSON在线解析

在没有互联网的情况下在 iPad 上下载和查看原型

在 Python 3.4 中加载和读取具有多个 JSON 对象的 JSON 文件

如何在 Flutter Mobile App 中加载和查询本地 json 数据

用fastjson框架解析Json数据工具类

JSON相关 JSON在线解析 JSON压缩转义工具 JSON着色工具 JSON 在线格式化工具 在线XML/JSON互相转换工具 XMLJSON在线转换