整體認爲是一個JSON,其中包含一個對象「D」與一個字符串這也是JSON 所以它是JSON內部的JSON。
所以你有一個'外部json':{「d」:「」}
+內部json:{「count」:「0」,「status」:「500」,「recipes」:[ ]}
,如果我們只是沒有插入\內JSON,我們可能會在practie無效JSON。(在這種情況下),我們難道不,但我相信的lib只是試圖成爲安全起見所以它逃脫內部的json並將其編碼爲一個字符串!
獲取字符串和解析它工作正常,如下圖所示,所有被添加有效
id innerJSON = @"{\\\"count\\\":\\\"0\\\",\\\"status\\\":\\\"500\\\",\\\"recipes\\\":[]}";
id response = [NSString stringWithFormat:@"{\"d\":\"%@\"}", innerJSON];
id data = [response dataUsingEncoding:NSUTF8StringEncoding];
id outerJson = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@", outerJson[@"d"]);
data = [outerJson[@"d"] dataUsingEncoding:NSUTF8StringEncoding];
id innerJson = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@ %@", innerJson[@"count"],innerJson[@"status"]);
樣品中,\\只需要編寫的代碼串。實際的字符串是你上面的字符串的100% –
是的。我知道我可以通過上面提到的方式瀏覽數據,但答案是否有效?我的意思是,爲什麼在每個「 – Neelesh
」之前有一個「d」和「\」,因爲答案是包含另一個JSON字符串的JSON字符串。如果內部JSON werent轉義,outerJSON == {「d」:「JSON_STRING」} ,這將是無效的,這種方式是有效的:) –