這個字符串格式錯誤這是我的實際JSON響應:如何糾正IOS
{
"x": {
"user": {
"id": 1,
"name": "a"
},
"startday": "2016-01-10",
"status": "New",
"total": 1,
"time_entries": [
{
"id": 766,
"project": {
"id": 3,
"name": "b"
},
"issue": {
"id": 4
},
"user": {
"id": 1,
"name": "c"
},
"activity": {
"id": 8,
"name": "d"
}
"hours": 1,
"comments": "",
"spent_on": "2016-01-10"
}
]
}
}
我創建動態這種反應,是這樣的:
NSString * newstring = [NSString stringWithFormat:@"{\\\"wk_time\\\":\%@\{\\\"user\\\":\%@\{\\\"id\\\":\%@\,\\\"name\\\":\\\"%@\\\"\%@\,\\\"startday\\\":\\\"%@\\\",\\\"status\\\":\\\"%@\\\",\\\"total\\\":\%@\,\\\"time_entries\\\":[{\\\"id\\\":766,\\\"project\\\":\%@\{\\\"id\\\":\%@\,\\\"name\\\":\\\"%@\\\"\%@\,\\\"issue\\\":\%@\{\\\"id\\\":\%@\%@\,\\\"user\\\":\%@\{\\\"id\\\":\%@\,\\\"name\\\":\\\"%@\\\"\%@\,\\\"activity\\\":\%@\{\\\"id\\\":\%@\,\\\"name\\\":\\\"%@\\\"\%@\,\\\"hours\\\":\%@\,\\\"comments\\\":\%@\,\\\"spent_on\\\":\\\"%@\\\"\%@\}",,,...];
然後,做到在規定的格式:
NSString * newstring1 = [NSString stringWithFormat:@「\"@%@\"",newstring];
NSLog(@"%@",newstring1);
所以,迴應是:
@"{\"x\":{\"user\":{\"id\":1,\"name\":\"b\"},\"startday\":\"2016-01-10\",\"status\":\"New\",\"total\":1.0,\"time_entries\":[{\"id\":766,\"project\":{\"id\":3,\"name\":\"a\"},\"issue\":{\"id\":4},\"user\":{\"id\":1,\"name\":\"b\"},\"activity\":{\"id\":8,\"name\":\"c\"},\"hours\":1.0,\"comments\":\"\",\"spent_on\":\"2016-01-10\"}]}}」
如果我靜態發佈此迴應是這樣的:
NSString * jsoncode [email protected]"{\"x\":{\"user\":{\"id\":1,\"name\":\"b\"},\"startday\":\"2016-01-10\",\"status\":\"New\",\"total\":1.0,\"time_entries\":[{\"id\":766,\"project\":{\"id\":3,\"name\":\"a\"},\"issue\":{\"id\":4},\"user\":{\"id\":1,\"name\":\"b\"},\"activity\":{\"id\":8,\"name\":\"c\"},\"hours\":1.0,\"comments\":\"\",\"spent_on\":\"2016-01-10\"}]}}";
NSData *objectData = [jsoncode dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:objectData options:NSJSONReadingMutableContainers error:&jsonError];
它得到serialized.shows的values.on在這樣動態地創建這種scenario.But:
NSString * newstring = [NSString stringWithFormat:@"{\\\"wk_time\\\":\%@\{\\\"user\\\":\%@\{\\\"id\\\":\%@\,\\\"name\\\":\\\"%@\\\"\%@\,\\\"startday\\\":\\\"%@\\\",\\\"status\\\":\\\"%@\\\",\\\"total\\\":\%@\,\\\"time_entries\\\":[{\\\"id\\\":766,\\\"project\\\":\%@\{\\\"id\\\":\%@\,\\\"name\\\":\\\"%@\\\"\%@\,\\\"issue\\\":\%@\{\\\"id\\\":\%@\%@\,\\\"user\\\":\%@\{\\\"id\\\":\%@\,\\\"name\\\":\\\"%@\\\"\%@\,\\\"activity\\\":\%@\{\\\"id\\\":\%@\,\\\"name\\\":\\\"%@\\\"\%@\,\\\"hours\\\":\%@\,\\\"comments\\\":\%@\,\\\"spent_on\\\":\\\"%@\\\"\%@\}",,,...];
NSString * newstring1 = [NSString stringWithFormat:@"@\"%@\"",newstring];
NSError *error=nil;
NSData * objectData = [newstring1 dataUsingEncoding:NSUTF8StringEncoding];
日誌顯示數據值。 但在此步驟之後,
NSDictionary * json= [NSJSONSerialization JSONObjectWithData:objectData options:0 error:&error];
序列化後,它顯示空值。
NSLog(@"%@",error);
在出現錯誤消息時顯示此消息。
錯誤域= NSCocoaErrorDomain代碼= 3840「的操作無法 完成。(可可錯誤3840)」(JSON文本不與陣列或 對象和選項,允許片段未設置啓動。)的UserInfo = 0x7fe0faa 上轉換爲字典{NSDebugDescription = JSON文本不與陣列或對象和 選項啓動以允許未設置片段。}
。
什麼可能是錯誤。如何糾正它?請在此需要指導。感謝您的幫助提前。在做靜態工作,但動態創建它顯示錯誤?如何糾正它?
建議解析之前入住http://jsonlint.com你兒子的字符串。你可能會知道哪裏出了問題。 –