试图找出为什么从tableviewcontroller到detailviewcontroller的json segue不起作用。做了一个NSLog来查看数据是否通过,这就是dvc中显示的内容。
"data.detail" NSLog:
(
{
emails = {
10 = j;
11 = k;
12 = l;
9 = i;
};
links = {
1 = a;
2 = b;
3 = c;
4 = d;
};
location = {
13 = m;
14 = n;
15 = o;
16 = p;
};
numbers = {
5 = e;
6 = f;
7 = g;
8 = h;
};
}
)
那我...
已尝试将 json 数据转换为详细视图控制器中的表视图。
NSString *rawString = [NSString stringWithFormat:@"%@", data.detail];
NSString *jsonString = rawString;
NSData *JSONdata = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *jsonError = nil;
但是将JSON转换为NSData然后NSDictionary仅在NSLog中输出"null"。
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:JSONdata options:0 error:&jsonError];
NSArray *items = [dic valueForKeyPath:@"email"];
NSLog(@"dic %@", dic);
NSLog(@"items %@", items);
帮助!非常感谢。
将下面的代码行从
NSArray *items = [dic valueForKeyPath:@"email"];
自
NSArray *items = [dic valueForKeyPath:@"emails"];
如果仍然得到 nslog 零,则更改
NSString *rawString = [NSString stringWithFormat:@"%@", data.detail];
喜欢这个
NSString *rawString = @"{"emails" :{"10" : "j","11" : "k","12" : "l","9" : "i"},"links" :{"1" : "a","2" : "b","3" : "c","4" : "d"}}";
您的JSON
无效,因此无法正常工作...
所以首先看一个JSON
的例子: http://json.org/example
然后你可以在这里尝试你的JSON
:jsonlint.com
这是您以良好格式开始JSON
:
{
"emails": {
"9": "i",
"10": "j",
"11": "k",
"12": "l"
},
"links": {
"1": "a",
"2": "b",
"3": "c",
"4": "d"
}
}
主要是将=
改为:
,;
改为,
,并增加了一些"
祝你好运。
NSString *rawString = [NSString stringWithFormat:@"%@", data.detail];
有两种可能性,并且您没有显示足够的信息:
任何一个 data.detail 都是 NSString。在这种情况下,这行代码是完全无用的,因为它只是制作字符串副本的一种昂贵方式,它根本不包含任何 JSON。
或者data.detail是一个NSDictionary。在这种情况下,您的整个代码绝对是误导性的废话,因为在这种情况下,您有一个 NSDictionary,请尝试将其转换为包含不起作用代码的 JSON 字符串,将该字符串转换为 NSData,然后将 NSData 转换回字典,这就是您开始的地方!
出于纯粹病态的好奇心,这是哪一个?