【问题标题】:reading a json object from a website in objective c从目标c中的网站读取json对象
【发布时间】:2014-03-20 19:00:17
【问题描述】:

我需要从下面给定从网站检索的 json 对象中分离子人、姓名、年龄、家庭地址、办公室地址

{“人”:

[{"subperson":{"home":{"id":"kljljk"},"name":"person3","age":"18","addr":{"home addr": "ksdjr","office addr":"kjshdg"}}}]}

尝试了 nsjsonserialization、sbjson 和 touchJSON api。返回一个字典,其中人是键,其他都是值(代码下方指定的 json 字符串格式) 我的代码:

NSURLRequest *urlreq = [NSURLRequest requestWithURL:url];
NSData *response = [NSURLConnection sendSynchronousRequest:urlreq returningResponse:nil error:nil];
[webviv loadRequest:urlreq];
SBJsonParser *jsonparser = [SBJsonParser new];
NSDictionary *json = [jsonparser objectWithData:response];
NSLog(@"%@\n", json);
for(id key in json)
{
     NSLog(@"%@=%@",key,[json objectWithKey: key]);
}

//output is
person = (everythingelse starting with [, can't separate name and other required things)

//using NSJSONSerialization
if ([NSJSONSerialization JSONObjectWithData:response options:0 error:&error]) 
{
    NSLog(@"json");
}

NSData *pTL = [NSJSONSerialization JSONObjectWithData:response options:0 error:&error];
NSLog(@"%@",pTL);

//Output is the same
//for(int i=0;i<[pTL count];i++)
//{
//NSLog(@"%d",i);
//}
//even with for loop the output is the same

【问题讨论】:

  • 你确定吗?例如, json[@"person"][0][@"subperson"] 返回什么? NSJSONSerialization 确实会递归到 JSON 中。
  • 不明白你在这里说什么,但是当我使用 nslog(json[@"person"][0][@"subperson"]) 运行时它显示错误并且当我运行 nslog( json[0][@"subperson"]) 并且还显示 json[@person][0] 的错误
  • 解析成功....谢谢大家

标签: ios objective-c json


【解决方案1】:

告诉您的后端人员(编写此 Web 服务的人)将“[”更改为“(”,将“]”更改为“)”。 ( 是数组 { 是字典。[ 对我们来说没什么,我们可以区分它

【讨论】:

  • 不可能。如果是 [] 那么它不是 json 吗?它仍然是json所以我认为没有任何问题
  • [] 这样我们就无法解析 json 或 xml 或 soap 服务
  • 我尝试使用由 tom susel(上图)给出的 json 解析器。成功了
  • 浏览器...对于我以前在 xcode 中的员工来说是成功的。所以我认为这是可能的
  • 我解析成功...所以它是一个json字符串
【解决方案2】:

您的 JSON 结构有问题。

例如,以下不是合法的 JSON 字符串:

"subperson":"home":{"id":"kljljk"}

尝试将其替换为以下内容:

{"person":[{"subperson":{"id":"kljljk","name":"person3","age":"18","addr":{"homeaddr":"ksdjr","office addr":"kjshdg"}}}]}

在继续调试代码之前,您可以使用任何类型的 online JSON parser 工具来验证 JSON 结构。

您还应该阅读一些有关 JSON 语法的知识 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    相关资源
    最近更新 更多