0

当我向我的 Web 服务器请求时,它会在 request.response 中向我发送 Json 字符串。我想将该 json 存储到 NSDictionary 中以进行解析并将其存储到数据库中。我的 Json 格式是

{ "rowNumber" : 3,
   [ { "Age" : "2 - 4 years old ",
   "AndroidID" : "2",
   "Category" : "Chanson",
   "Description" : "fourni",
   "Size" : 3447196,
   "Thumbnail" : null,
   "Title" : "test",
   "iTunesID" : "2",
   "inactive" : false,
   "product_id" : 2} ],

   [ { "Age" : "2 - 4 years old ",
   "AndroidID" : "3",
   "Category" : "Chanson",
   "Description" : "Animation ",
   "Size" : 3447196,
   "Thumbnail" : null,
   "Title" : "Escargot",
   "iTunesID" : "3",
   "inactive" : false,
   "product_id" : 3
    } ] 
     }

如果我使用此代码将字符串逐个打印到 NSlog,它会显示得很好,但是我怎样才能将它存储到 NDdictionary 中?

NSString *response = [[request responseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

要存储到字典中,我尝试了此代码,但这以相反的顺序存储了我的 json

 NSDictionary* json = [NSJSONSerialization
                      JSONObjectWithData:request.responseData

                      options:kNilOptions
                      error:&error];

for(NSString *key in [json allKeys]) {
    NSLog(@"%@",[json objectForKey:key]);

它以相反的顺序存储它。任何帮助表示赞赏。我正在使用 ASIFormDataRequest 进行联网。

4

2 回答 2

1

您的 JSON 无效。

我检查

  1. http://jsonviewer.stack.hu/
  2. http://jsonviewer.net/

您的数组格式错误。在此处阅读 JSON 语法

应该这样做:

{ "rowNumber" : 3,
   "Data" : [ { 
    "Age" : "2 - 4 years old ",
   "AndroidID" : "2",
   "Category" : "Chanson",
   "Description" : "fourni",
   "Size" : 3447196,
   "Thumbnail" : null,
   "Title" : "test",
   "iTunesID" : "2",
   "inactive" : false,
   "product_id" : 2 
   } ,
   { 
   "Age" : "2 - 4 years old ",
   "AndroidID" : "3",
   "Category" : "Chanson",
   "Description" : "Animation ",
   "Size" : 3447196,
   "Thumbnail" : null,
   "Title" : "Escargot",
   "iTunesID" : "3",
   "inactive" : false,
   "product_id" : 3
    } ] 
}

然后要存储 JSON 数据,我建议您使用我的技术HERE。正确的方式和相当的野兽

于 2013-06-05T09:58:38.290 回答
0
  • Json 被解析,输出为 NSArray 或 NSDicitonary
  • 您添加了错误的 json。格式不正确
  • NSdictionary 没有您所说的顺序。它是一种键值对机制。也就是说,它使用setObject:ForKey:方法存储为键的值,并在使用用于设置值的相同键被询问时返回值使用objectForKey:方法
于 2013-06-05T10:05:57.463 回答