Objective c- 获取 json 数组中的子 json 字符串

Posted

技术标签:

【中文标题】Objective c- 获取 json 数组中的子 json 字符串【英文标题】:Objective c- get sub json string in json array 【发布时间】:2017-05-11 11:30:13 【问题描述】:

我有一个像这样格式的 JSON

"MaintanenceHeaders":[],
"MaintanenceRules":[ ],
"FaultRules":[] 

如何在不解析字符串的情况下获取 json 字符串 MaintenanceHeaders? 像: “MaintanenceHeaders”:[]

【问题讨论】:

不解析如何获取字符串?你能详细说明你的问题吗? 我在通话后得到 json 字符串。它有6个对象。我想将一个对象作为字符串。就像我在通话后得到一个对象 Sefa,作为初学者尝试从 Google 自己实现。顺便说一句,您以字典的形式获取数据,因此请尝试通过 KEY 'MaintanenceHeaders' 获取价值。按照几个链接进行解析,例如roadfiresoftware.com/2016/12/how-to-parse-json-with-swift-3appcoda.com/fetch-parse-json-ios-programming-tutorial。此外,'[' 代表 ARRAY,而 '' 代表字典 将其转换为字典。然后,将MaintanenceHeaders":[] 转换为 JSON 字符串。 【参考方案1】:

给你:

- (void)viewDidLoad 
    [super viewDidLoad];

    NSDictionary *dict = @@"MaintanenceHeaders":@[@@"M1":@"V1", @"M1":@"V2", @@"M2":@"V1", @"M2":@"V2"],
                           @"MaintanenceRules":@[@@"M3":@"V1", @"M3":@"V2"],
                           @"FaultRules":@[@@"F1":@"V1", @"F1":@"V2"];

    for (NSString *key in dict) 
        id object = dict[key];
        NSString *output = [NSString stringWithFormat:@"\"%@\":%@", key, [self jsonStringFromObject:object]];
        NSLog(@"Output: %@", output);
    


- (NSString *)jsonStringFromObject:(id)object 
    NSError * err;
    NSData * jsonData = [NSJSONSerialization dataWithJSONObject:object options:0 error:&err];
    NSString * jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

    return jsonString;

输出:

Output: "MaintanenceHeaders":["M1":"V1","M2":"V1"]
Output: "MaintanenceRules":["M3":"V1"]
Output: "FaultRules":["F1":"V1"]

【讨论】:

以上是关于Objective c- 获取 json 数组中的子 json 字符串的主要内容,如果未能解决你的问题,请参考以下文章

从Objective C中的json对象获取值? [关闭]

从Objective C中的字符串获取JSON URL

将 JSON 字符串解析为对象数组 Objective C

在 Objective-C 中解析 JSON 数组

从JSON数组objective-c获取值的问题

在Objective C中创建JSON数组[重复]