假設你已經把字符串字典中的字典:
NSDictionary* jsonSocketData;
for(NSDictionary* data in jsonSocketData[@"data"]) {
/* whatever */
NSLog(@"%@", data[@"abc"]);
}
通過我希望你的要求的結果是更喜歡這樣的方式:
{
"result": [
{
"data": {
"abc": [],
"pqr": []
},
"error": ""
},
{
"data": {
"abc": [],
"pqr": []
},
"error": ""
}
]
}
如果你有你的轉換的NSString(JSON)來的NSDictionary:
NSString* jsonString = @"..";
NSData* data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
編輯
如果你發佈的字符串是你收到我這一招(這樣的JSON將合格的)完全匹配的字符串:
NSString* response = @"...";
/* only if you are sure about format */
response = [response stringByReplacingOccurrencesOfString: @"}{" withString:@"},{"];
/* otherwise you can apply regex, defintely more flexible, with pattern "}(.?){" */
response = [NSString stringWithFormat:@"{\"result\":[%@]}", response];
這一招後,你可以在上面申請代碼。 順便說一句,在我看來,最好的方法是有一個良好的JSON,而不是應用無聊和自定義解析。
請仔細看一下數據。格式爲{} {} {}位於另一層。現在的挑戰是將其作爲字典數組來閱讀,而不需要破解。 –
因此,當你接受請求時,響應是一個字符串「json-fake」,就像你發佈的字符串一樣? –
閱讀數據沒有問題。格式化是挑戰。我想要做的是用以下格式[{「data」:{「abc」:[],「pqr」:[]},「error」:「」},{「data」 :{「abc」:[],「pqr」:[]},「error」:「」},{「data」:{「abc」:[],「pqr」:[]},「error」: 「」}]。仔細注意括號。 –