在应用端更新答案并将其保存到数据库时,它会被修改为以下格式。(即:被替换为=)我想保持相同的格式。有人能告诉我这是什么问题吗?我使用NSDictionary访问键值对,并将最终的nsdictionary分配给DB。
答案 0 :(得分:1)
NSDictionary和包含JSON的NSString不是同一个对象,因此它们不具有相同的格式。使用NSLog打印这些对象时,它会在这些对象上调用描述方法。此方法返回NSString的字符串和NSDictionary的特定格式字符串。
如果要检索JSON格式,则需要再次将NSDictionary转换为JSON字符串,如下所示:
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
NSString *strJson = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
if (error)
NSLog(@"An error occured");
然后:
NSLog(@"%@", strJson);
我希望我的英语是可以理解的。不要犹豫要纠正我。
答案 1 :(得分:1)
由于@Larme指向-[NSDictionary description]
不返回字典的JSON表示。 NSArray
以类似的方式工作。
NSDictionary
的说明格式如下。
{
key1 = value1;
key2 = value2;
...
keyN = valueN;
}
NSArray
的说明如下:
(
object1,
object2,
...
objectN
)
为了从字典中获取JSON,您应该使用NSJSONSerialization
(或第三方库)。
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:response options:0 error:nil];
//Use line below to see formatted JSON
//NSData *jsonData = [NSJSONSerialization dataWithJSONObject:response options:NSJSONWritingPrettyPrinted error:nil];
NSString *string = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
答案 2 :(得分:1)
诀窍是在将NSJSONSerialization传递给NSSTRING之前有一个NSJSONSerialization
[\s\S]