gpt4 book ai didi

ios - 无法将 Json 解析为 NSDictionary

转载 作者:行者123 更新时间:2023-11-29 03:49:10 28 4
gpt4 key购买 nike

我有一个 WebService,它返回以下 Json-String:

"{\"password\" : \"1234\",  \"user\" : \"andreas\"}"

我调用网络服务并尝试解析返回的数据,例如:

[NSURLConnection sendAsynchronousRequest: request
queue: queue
completionHandler: ^(NSURLResponse *response, NSData *data, NSError *error) {


if (error || !data) {
// Handle the error
} else {
// Handle the success
NSError *errorJson = nil;
NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &errorJson];
NSString *usr = [responseDict objectForKey:@"user"];
}
}
];

但是生成的 NSDictionary 看起来像:

enter image description here

有什么影响,我无法获取值 - 例如 user.有人可以帮助我,我做错了什么吗? - 谢谢。

最佳答案

从调试器屏幕截图看来,服务器正在(无论出于何种原因)返回"nested JSON": responseDict[@"d"] 又是一个包含 JSON 数据的字符串,所以你必须应用 NSJSONSerialization 两次:

NSError *errorJson = nil;
NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData: data options:0 error: &errorJson];
NSData *innerJson = [responseDict[@"d"] dataUsingEncoding:NSUTF8StringEncoding];
NSMutableDictionary *innerObject = [NSJSONSerialization JSONObjectWithData:innerJson options:NSJSONReadingMutableContainers error:&errorJson];
NSString *usr = [innerObject objectForKey:@"user"];

如果可以选择,更好的解决方案是修复 Web 服务以返回正确的 JSON 数据。

关于ios - 无法将 Json 解析为 NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17283141/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com