1. ホーム
  2. objective-c

[解決済み] NSStringからNSDictionary / JSONへの変換

2023-05-18 08:50:19

質問

以下のデータを NSString :

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

このデータを NSDictionary に変換したい。

私はまず NSString JSON オブジェクトに変換します。

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

しかし、私が試したとき、:

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

として値を受け取る。 NULL .

どなたか、何が問題なのかを教えていただけませんか?

どのように解決するのですか?

キーバリューの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;
}

これが明確な理解を得るための一助となれば幸いです。