Nsdictionary格式问题
Nsdictionary Format issue
我有以下答案(来自服务器),格式如下,用于数据库中的答案列。
在应用程序端更新答案并将其保存到数据库时,它被修改为以下格式。(即,: 被 = 替换)我想保持相同的格式。有人可以让我知道问题出在哪里吗?我正在使用 NSDictionary 访问键值对,并将最终的 nsdictionary 分配给数据库。
NSDictionary 和包含 JSON 的 NSString 不是同一个对象,因此它们的格式不同。当您使用 NSLog 打印这些对象时,它会调用这些对象的描述方法。此方法 return 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);
我希望我的英语是可以理解的。不要犹豫,纠正我。
正如@Larme 指出的那样,-[NSDictionary description]
不 return 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];
诀窍是在将其传递给 NSSTRING 之前进行 NSJSONSerialization
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:YOUR_OBJECT options:0 error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
我有以下答案(来自服务器),格式如下,用于数据库中的答案列。
在应用程序端更新答案并将其保存到数据库时,它被修改为以下格式。(即,: 被 = 替换)我想保持相同的格式。有人可以让我知道问题出在哪里吗?我正在使用 NSDictionary 访问键值对,并将最终的 nsdictionary 分配给数据库。
NSDictionary 和包含 JSON 的 NSString 不是同一个对象,因此它们的格式不同。当您使用 NSLog 打印这些对象时,它会调用这些对象的描述方法。此方法 return 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);
我希望我的英语是可以理解的。不要犹豫,纠正我。
正如@Larme 指出的那样,-[NSDictionary description]
不 return 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];
诀窍是在将其传递给 NSSTRING 之前进行 NSJSONSerialization
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:YOUR_OBJECT options:0 error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];