无法获取json String Key?

时间:2011-10-13 06:17:15

标签: iphone objective-c json

请参阅以下JSON格式。这是我从服务器获得的JSON响应。我可以使用密钥{ myArrayList : ... }获取RESPONSE但是我无法使用密钥id获取myArrayList。请帮我找到解决方案。

  

{ “RESPONSE”: “{\” myArrayList \ “:[{\” ID \ “:1,\” 标题\ “:\” MS \” \ “名字\”:\ “贾纳\” ,\ “中间名\”:\ “贾纳\”,\ “姓氏\”:\ “贾纳\”,\ “EMAILID \”:\ “\”,\ “officalLandline \”:\ “43545346 \”,\”移动\ “:\” 34543534534 \”,\ “传真\”:\ “\”,\ “skypeId \”:\ “\”,\ “GTALK \”:\ “\”,\ “的WindowsLive \”:\ “\”,\ “脸谱\”:\ “\”,\ “LinkedIn \”:\ “\”,\ “网站\”:\ “\”,\ “评论\”:\ “\”,\” contactSource \“:\”外部参考\“,\”dob \“:\”2011年10月3日12:00:00 AM \“,\”preferredTimeZone \“:\”GMT-11:00 \“,\” lastEditedBy \ “:\” 管理员\”,\ “组织\”:\ “\”,\ “contactType \”:\ “零售商\”,\ “shareAll \”:空,\ “状态\”:空,\ “modeOfCommunication \”:\“mobile \”,\“createdBy \”:\“admin \”,\“createdTime \”:\“Oct 11,2011 11:21:00 AM \”,\“lastModifiedBy \”:空},{\ “ID \”:2,\ “称号\”:\ “先生\”,\ “名字\”:\ “sugadev \”,\ “中间名\”:\ “sugadev \”,\ “姓氏\”:\ “jeyamani \”,\ “EMAILID \”:\ “jsugadev22@gmail.com \”,\ “officalLandline \”:\ “34566744467 \”,\ “移动\”:\ “2434234545 \” ,\ “传真\”:\ “\”,\ “skypeId \”:\ “\”,\ “GTALK \”:\ “\”,\ “的WindowsLive \”:\ “\”,\ “脸谱\” :\ “\”,\ “LinkedIn \” :\“\”,\“website \”:\“\”,\“remarks \”:\“\”,\“contactSource \”:\“Partner Reference \”,\“dob \”:\“Oct 2,2011 12:00:00 AM \“,\”preferredTimeZone \“:\”West Samoa Time \“,\”lastEditedBy \“:\”admin \“,\”organization \“:\”\“,\ “contactType \”:\ “零售商\”,\ “shareAll \”:空,\ “状态\”:空,\ “modeOfCommunication \”:\ “移动\”,\ “createdBy \”:\ “管理员\” ,“createdTime”:“2011年10月11日上午11:22:52”,“”lastModifiedBy \“:null}]}”}

4 个答案:

答案 0 :(得分:1)

密钥myArrayList会为您提供一系列字典。将其存储在一个数组中。然后在该数组上使用objectAtIndex来获取单个词典,然后在每个词典上使用键“id”来获取您的值。

答案 1 :(得分:0)

您的JSON字符串格式不正确。

试试这个:

{"RESPONSE":{"myArrayList":[{"id":1,"title":"Ms.","firstName":"safd","middleName":"afdsaf","lastName":"asfas","emailId":"","officalLandline":"43545346","mobile":"34543534534","fax":"","skypeId":"","gtalk":"","windowsLive":"","faceBook":"","linkedIn":"","website":"","remarks":"","contactSource":"External Reference","dob":"Oct 3, 2011 12:00:00 AM","preferredTimeZone":"GMT-11:00","lastEditedBy":"admin","organisation":"","contactType":"Retailer","shareAll":null,"status":null,"modeOfCommunication":"mobile","createdBy":"admin","createdTime":"Oct 11, 2011 11:21:00 AM","lastModifiedBy":null},{"id":2,"title":"Mr.","firstName":"asdf","middleName":"af","lastName":"fd","emailId":"sdfa@gmail.com","officalLandline":"34566744467","mobile":"2434234545","fax":"","skypeId":"","gtalk":"","windowsLive":"","faceBook":"","linkedIn":"","website":"","remarks":"","contactSource":"Partner Reference","dob":"Oct 2, 2011 12:00:00 AM","preferredTimeZone":"West Samoa Time","lastEditedBy":"admin","organisation":"","contactType":"Retailer","shareAll":null,"status":null,"modeOfCommunication":"mobile","createdBy":"admin","createdTime":"Oct 11, 2011 11:22:52 AM","lastModifiedBy":null}]}}

答案 2 :(得分:0)

这是你的JSON:

{
  "RESPONSE":
    "{
        "myArrayList":[
            {
                "id":1,
                "title":"Ms.",
                "firstName":"safd",
                "middleName":"afdsaf",
                "lastName":"asfas",
                "emailId":"",
                "officalLandline":"43545346",
                "mobile":"34543534534",
                "fax":"",
                "skypeId":"",
                "gtalk":"",
                "windowsLive":"",
                "faceBook":"",
                "linkedIn":"",
                "website":"",
                "remarks":"",
                "contactSource":"External Reference",
                "dob":"Oct 3, 2011 12:00:00 AM",
                "preferredTimeZone":"GMT-11:00",
                "lastEditedBy":"admin",
                "organisation":"",
                "contactType":"Retailer",
                "shareAll":null,
                "status":null,
                "modeOfCommunication":"mobile",
                "createdBy":"admin",
                "createdTime":"Oct 11, 2011 11:21:00 AM",
                "lastModifiedBy":null
                },
                {
                    "id":2,
                    "title":"Mr.",
                    "firstName":"asdf",
                    "middleName":"af",
                    "lastName":"fd",
                    "emailId":"sdfa@gmail.com",
                    "officalLandline":"34566744467",
                    "mobile":"2434234545",
                    "fax":"",
                    "skypeId":"",
                    "gtalk":"",
                    "windowsLive":"",
                    "faceBook":"",
                    "linkedIn":"",
                    "website":"",
                    "remarks":"",
                    "contactSource":"Partner Reference",
                    "dob":"Oct 2, 2011 12:00:00 AM",
                    "preferredTimeZone":"West Samoa Time",
                    "lastEditedBy":"admin",
                    "organisation":"",
                    "contactType":"Retailer",
                    "shareAll":null,
                    "status":null,
                    "modeOfCommunication":"mobile",
                    "createdBy":"admin",
                    "createdTime":"Oct 11, 2011 11:22:52 AM",
                    "lastModifiedBy":null
                    }
                ]"
            }

正如您所看到的,您有一些不良的格式化,即第三个引号不应该存在,您在结束数组括号后面有一个引号,并且最后似乎缺少一个}。

答案 3 :(得分:0)

感谢所有人,

我找到了解决方案,我将{"myArrayList"...}作为一个字符串,这就是我无法正确获取其余密钥的原因

通过使用此编码找到

NSDictionary *responseDate = [response objectForKey:@"responseData"];
If ([[responseData objectForKey:@"results"] isKindOfClass [NSArray class]]) {
NSArray *resultsArray = [responseData objectForKey:@"results"];
   ... do other things to get to each result in the array ...
}
else if ([[responseData objectForKey:@"results"] isKindOfClass [NSDictionary class]]) {
 // it looks like each individual result in returned in a NSDictionary in your example
 ... do the things to handle the single result ...
} 
else {
 // handle no results returned
}

我使用webService开发人员

按照正常方式获取结果

谢谢你的回答朋友:)