我從REST API收到NSData對象data
。包含我想分析的JSON數據。目標C中的Deserialise JSON字符串
{
JsonResult = "[{
\"IsAuth\":\"true\",
\"User\":\"
[
{
\\\"userid\\\":\\\"josephH\\\",
\\\"firstname\\\":\\\"joseph\\\",
\\\"lastname\\\":\\\"Henry\\\",
}
]\"}]"
}
這個聲明給了我一個像下面這樣的字符串的結果,我不能解析爲JSON。 myData = [data valueForKey:@"JsonResult"];
"[{
\"IsAuth\":\"true\",
\"User\":\"
[
{
\\\"userid\\\":\\\"josephH\\\",
\\\"firstname\\\":\\\"joseph\\\",
\\\"lastname\\\":\\\"Henry\\\",
}
]\"}]"
當我試圖通過這個mydata
到JSONSerialization
代碼崩潰。
如何將上述字符串轉換爲NSDictionary,以便我可以解析它們並使用IsAuth和User的值。
代碼:
[LDService authenticateUser:Uname.text passwordString:Password.text completeBlock:^(NSData * data){
NSError *error;
NSData *jsonData;
NSString *jsonString = nil;
NSMutableDictionary *jsonDict;
if([NSJSONSerialization isValidJSONObject:data])
{
jsonData = [NSJSONSerialization dataWithJSONObject:data
options:kNilOptions
error:&error];
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
NSString *formattedString = [jsonString stringByReplacingOccurrencesOfString:@"\\\"" withString:@"'"];
NSLog(@"Formatted string %@",formattedString);
[jsonDict setObject:formattedString forKey:@"JsonResult"];
NSLog(@"Parsed json %@",jsonDict);
}];
您的迴應JsonResult是字符串不正確的JSON。 –
你可以檢查你的JSON無效格式:http://jsonviewer.stack.hu –
其實,我已經多次序列化了json。所以JsonResult是一個字符串,但它包含的數據就像JSON。我縮短了JSON結果,但最初它是一個很長的JSON,它在一個字符串中包含JSON。我必須多次反序列化數據,但我沒有這樣做。 –