在 DetailViewController 中将 JSON 字符串转换为 NSDictionary



试图找出为什么从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 转换回字典,这就是您开始的地方!

出于纯粹病态的好奇心,这是哪一个?

最新更新