使用 IOS 解析基本 JSON

Posted

技术标签:

【中文标题】使用 IOS 解析基本 JSON【英文标题】:Parsing basic JSON with IOS 【发布时间】:2014-08-17 15:05:04 【问题描述】:

我的 JSON 字符串如下所示:

"msg":"邮箱:ddhaxor97@gmail.com 不存在,无法找回 数据","代码":120

我的解析代码是这样的

NSData *data= [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSError *jsonError = nil;
NSArray *jsonArray = (NSArray *)[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&jsonError];
NSLog(@"Json array = %@", jsonArray);

如果我打印 JSON 数组(即最后一行),我如何从 JSON 数组中获取值:

Json 数组 = 代码 = 120; msg = "邮箱:ddxxx@gmail.com 不存在,无法检索数据";

如果我尝试使用[jsonArray objectAtIndex:0],那么它会失败。那为什么我不能访问它呢?

我的 php 看起来像这样生成字符串:

return json_encode(array("msg" => $msg, "code" => $code));

我完全坚持下去,所有的例子都向我展示了如何解析字典,而不是像这样的小数组。请帮忙:(

【问题讨论】:

【参考方案1】:

这可能是因为 JSON 中的“数组”实际上是 ios 中的“字典”。尝试使用:

NSDictionary *dict = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&jsonError];
[dict objectForKey:"code"];

【讨论】:

以上是关于使用 IOS 解析基本 JSON的主要内容,如果未能解决你的问题,请参考以下文章

使用Python解析JSON数据的基本方法

iOS的JSON解析及用例设计

js解析与序列化json数据(一)json.stringify()的基本用法

iOS 自己封装的网络请求,json解析的类

[iOS开发]JSONModel的使用

使用 JSON 数据填充 UITableView