gpt4 book ai didi

ios - iOS 7 中的 JSON 解析

转载 作者:IT王子 更新时间:2023-10-29 08:02:04 24 4
gpt4 key购买 nike

我正在为现有网站创建一个应用程序。他们目前拥有以下格式的 JSON:

[

{
"id": "value",
"array": "[{\"id\" : \"value\"} , {\"id\" : \"value\"}]"
},
{
"id": "value",
"array": "[{\"id\" : \"value\"},{\"id\" : \"value\"}]"
}
]

他们在使用 Javascript 转义\字符后对其进行解析。

我的问题是当我使用以下命令在 iOS 中解析它时:

NSArray *result = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&localError];

然后这样做:

NSArray *Array = [result valueForKey:@"array"];

我得到的不是 Array 对象,而是 NSMutableString 对象。

  • 该网站已经投入生产,所以我不能要求他们更改现有结构以返回正确的 JSON 对象。这对他们来说会是很多工作。

  • 所以,在他们改变底层结构之前,有什么方法可以让它在 iOS 中工作,就像他们在他们的 上使用 javascript 一样网站?

任何帮助/建议都会对我很有帮助。

最佳答案

正确的 JSON 应该类似于:

[
{
"id": "value",
"array": [{"id": "value"},{"id": "value"}]
},
{
"id": "value",
"array": [{"id": "value"},{"id": "value"}]
}
]

但是,如果您无法使用问题中提供的格式,则需要使用 NSJSONReadingMutableContainers 使字典可变,然后再次为其中的每一个调用 NSJSONSerialization 数组条目:

NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
if (error)
NSLog(@"JSONObjectWithData error: %@", error);

for (NSMutableDictionary *dictionary in array)
{
NSString *arrayString = dictionary[@"array"];
if (arrayString)
{
NSData *data = [arrayString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
dictionary[@"array"] = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if (error)
NSLog(@"JSONObjectWithData for array error: %@", error);
}
}

关于ios - iOS 7 中的 JSON 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com