Если вы замените строку содержимого следующим:
"[{\"Id\":\"1\",\"Name\":\"John\"},{\"Id\":\"2\",\"Name\":\"John\"}]"
Будет проанализировано правильно.
JSON.parse("[{\"Id\":\"1\",\"Name\":\"John\"},{\"Id\":\"2\",\"Name\":\"John\"}]")
>>> [Object { Id="1", Name="John"}, Object { Id="2", Name="John"}]
Возможно, вы дважды экранировали строку содержимого где-то в вашем коде.
Я просто использовал firebug, чтобы проверить правильность JSON. JSONKit такой же:
clowwindy:~ clowwindy$ cat /tmp/input.txt
{
"app": {
"content": "[{\"Id\":\"1\",\"Name\":\"John\"},{\"Id\":\"2\",\"Name\":\"John\"}]"
}
}
NSError *error;
NSString *input = [NSString stringWithContentsOfFile:@"/tmp/input.txt" encoding:NSUTF8StringEncoding error:&error];
NSString *jsonString = input;
NSDictionary *jsonParsed = [jsonString objectFromJSONString];
NSString *content = [[jsonParsed objectForKey:@"app"] objectForKey:@"content"];
NSDictionary *jsonContent = [content objectFromJSONString];
NSLog(@"%@", jsonContent);
NSLog(@"%@", content);
2012-01-02 00:26:39.818 testjson[12700:707] (
{
Id = 1;
Name = John;
},
{
Id = 2;
Name = John;
}
)
2012-01-02 00:26:39.822 testjson[12700:707] [{"Id":"1","Name":"John"},{"Id":"2","Name":"John"}]