objective-c - 在 Objective-C 中解析和遍历 JSON 字符串
问题描述
这可能很简单,但我是 Objective-c 的新手,我找不到如何做到这一点的方法,我有一个看起来像这样的字符串:
[
{quantity: 2, product: "CHEESEBURGER", price: 14.44, extraingredients: [{name:'extra sos', price:3.00}]},
{quantity: 1, product: "FANTA", price: 14.40},
{quantity: 1, product: "CHICKEN POKE BOWL", price: 14.50}
]
现在我需要解析这个字符串并遍历每个对象并遍历每个 extraingredients 数组。
我做了一些研究,我发现解析是这样的:
NSArray* json = [NSJSONSerialization
JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]
options:NSJSONReadingMutableContainers
error:&e];
但这不起作用
解决方案
如上所述,该字符串不是有效的 JSON。关键字(例如quantity
,product
)必须用双引号括起来,字符串值name
也必须用双引号括起来。对字符串进行更改,NSJSONSerialization
该类可以工作:
NSString *jsonString = @"[{\"quantity\": 2, \"product\": \"CHEESEBURGER\", \"price\": 14.44, "\
"\"extraingredients\": [{\"name\":\"extra sos\", \"price\":3.00}]}, "\
"{\"quantity\": 1, \"product\": \"FANTA\", \"price\": 14.40}, "\
"{\"quantity\": 1, \"product\": \"CHICKEN POKE BOWL\", \"price\": 14.50}]";
NSError *e;
NSArray* json = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]
options:NSJSONReadingMutableContainers
error:&e];
推荐阅读
- javascript - 在第一行代码中声明所有 javascript 变量的标准?
- python - 是否可以在 django 的 json 字段中用 F 增加一个值?
- tensorflow - 在 Google Cloud ML Engine 无模块网络上训练对象检测模型时出错
- mysql - NodeJs MySql 多次更新
- android - How to get position of inserted item using DiffUtil?
- deep-learning - While Yolo darknet training, several images cannot loaded error(?)
- latex - How To Write A Beautiful Brace In Tex
- java - Runnable 之类的接口有何独特之处?
- android - 关闭屏幕后减慢android应用程序的自动关闭过程
- core-data - NSPersistentContainer, performBackgroundTask, calling perform does nothing