Ios5 NSJSONSerialization解析未返回响应数组/字典中的所有值

Ios5 NSJSONSerialization解析未返回响应数组/字典中的所有值,ios5,nsurlconnection,nsjsonserialization,Ios5,Nsurlconnection,Nsjsonserialization,我正在将本机NSURLConnectionLegate与NSJsonSerialization一起使用。我得到的是REST响应,但不是它包含的所有值 我在web浏览器中有此JSON响应: { "error" : { "err_num" : 0, "err_message" : "" }, "company" : { "id" : 1, "name" : "company_string1" }, "company" : { "id" : 7, "n

我正在将本机NSURLConnectionLegate与NSJsonSerialization一起使用。我得到的是REST响应,但不是它包含的所有值

我在web浏览器中有此JSON响应:

{
"error" : {
    "err_num" : 0,
    "err_message" : ""
}, 
"company" : {
    "id" : 1,
    "name" : "company_string1"
},
"company" : {
    "id" : 7,
    "name" : "company_string2"
},
"company" : {
    "id" : 19,
    "name" : "company_string3"
},
"company" : {
    "id" : 13,
    "name" : "company_string4"
},
"company" : {
    "id" : 14,
    "name" : "company_string5"
}
}
我正在异步使用NSURLConnection并实现

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
    [receivedData setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [receivedData appendData:data];
}   // receivedData is NSMutuableData initialized before 
在连接IDFinishLoading时,我会:

当我登录时,我会

{
    "err_message" = "";
   "err_num" = 0;
}
{
    id = 14;
    name = "company_string5";
}
如果我使用NSJSONReadingAllowFragments,我会得到


我也查了字典,但我得到了同样的结果。由于重复的键,他们的JSON有问题吗?它只返回最后一个/第一个键吗?我也碰巧在网上查过,几乎所有人都说这是一个有效的JSON。它没有给出任何错误

好吧,JSON不是数组,除非您省略了一些字符。您可能正在枚举整个数组,从而获得字典值,而不使用键。NSLog数组本身的值,您将在NSDictionary中看到所有键


如果密钥真的都是company,那么您将只收到一个company元素。多个相同的键将是从另一端发送的无效JSON。

这与我在浏览器中得到的JSON响应完全相同,我最初认为它是无效的JSON,但现在我认为我是正确的。它应该是一个嵌套的JSON,公司只有一个键。@Vacca什么应该是嵌套的JSON?如果dictionary JSON对象中有多个相同的键,则该JSON无效。
{
    "err_message" = "";
   "err_num" = 0;
}
{
    id = 14;
    name = "company_string5";
}
{
    "err_message" = "";
    "err_num" = 0;
} 
{
    id = 1;
    name = company_string1;
}