一尘不染

将NSString转换为NSDictionary / JSON

json

我将以下数据另存为NSString

 {
    Key = ID;
    Value =         {
        Content = 268;
        Type = Text;
    };
},
    {
    Key = ContractTemplateId;
    Value =         {
        Content = 65;
        Type = Text;
    };
},

我想将此数据转换为NSDictionary包含键值对的。

我首先尝试将转换NSStringJSON 对象,如下所示:

 NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

但是,当我尝试:

NSString * test = [json objectForKey:@"ID"];
NSLog(@"TEST IS %@", test);

我收到的值为NULL

任何人都可以提出问题所在吗?


阅读 214

收藏
2020-07-27

共1个答案

一尘不染

我相信您误解了JSON格式的键值。您应该将字符串存储为

NSString *jsonString = @"{\"ID\":{\"Content\":268,\"type\":\"text\"},\"ContractTemplateID\":{\"Content\":65,\"type\":\"text\"}}";
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

现在,如果您遵循NSLog语句

NSLog(@"%@",[json objectForKey:@"ID"]);

结果将是另一个NSDictionary。

{
    Content = 268;
    type = text;
}

希望这有助于获得清晰的理解。

2020-07-27