将NSString
转换为正确的JSON格式..
NSString *input_json = [NSString stringWithFormat:@"{\"id\":\"%@\",\"seconds\":\"%d\",\"buttons\": \"%@\"}", reco_id, interactionTime, json_Buttons];
此处json_Button
采用从nsdictionary转换而来的json格式。
我的input_json结果是:
{"id":"119","seconds":"10","buttons": "{ "update" : "2", "scan" : "4" }"}
它不是正确的JSON格式。键按钮包含“{}”我想删除这些引号。
预期结果是:
{ "id": "119", "seconds": "10", "buttons": { "update": "2", "scan": "4" } }
答案 0 :(得分:2)
你说这一切都错了。首先,创建一个NSDictionary
,其中包含您要转换为JSON的所有数据。然后使用NSJSONSerialization
将字典正确转换为JSON。
这样的事情会起作用:
NSDictionary *dictionary = @{ @"id" : reco_id, @"seconds" : @(interactionTime), @"buttons" : json_Buttons };
NSError *error = nil;
NSData *data = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
if (data) {
NSString *jsonString = [[NSString alloc] intWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"JSON: %@", jsonString);
} else {
NSLog(@"Unable to convert dictionary to JSON: %@", error);
}
答案 1 :(得分:0)
尝试手动构建JSON字符串是个坏主意。使用NSJSONSerialization类。这很容易。创建字典,然后调用dataWithJSONObject:options:error:
。
如果你使用选项:NSJSONWritingPrettyPrinted
它会插入换行符和空格,使JSON更具可读性。
通过使用该功能,您每次都可以获得格式正确的JSON,并且它非常灵活,因为如果您将其发送到不同的字典,您将获得不同的JSON。