当前位置: 首页 > 面试题库 >

iOS 7中的JSON解析

壤驷睿
2023-03-14
问题内容

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

[

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

他们使用Java脚本将\字符转义后解析。

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

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

并这样做:

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

而不是Array我得到了NSMutableString对象。

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

  • 因此,在他们改变基础结构之前,有什么方法可以使它们iOSjavascript在它们上面一样地工作website吗?

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


问题答案:

正确的JSON应该看起来像这样:

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

但是,如果您使用的是问题中提供的格式,则需要使字典可变,NSJSONReadingMutableContainers然后NSJSONSerialization针对每个array条目再次调用:

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 7 target上运行了一个演示应用程序,这是我得到的: 我正在使用一个故事板,它在iOS8中看起来很好。约束是正确的。 我已经检查过,例如UITableView在iOS 7中以偏移量开始 但这种情况下的问题是整件事,包括状态栏有偏移量,不知道这是什么。我在故事板中摆弄视图控制器的布局设置,没有任何效果。 我还创建了一个全新的(单视图)项目,运行时没有任何更改,也遇到了同样的问题。

  • 问题内容: 我正在尝试存储从以下请求中获取的JSON中的JSON … 得到的JSON从获得 的身体 是下面的,正如你可以看到有是JSON内的JSON,我怎么能存储 的是 JSON在 NSDictionary中 ,你可以看到,JSON是引号之间。 问题答案: 实际上,您拥有的是:经典JSON,其中有一个字符串“代表” JSON。 因此,由于我们可以这样做: NSData <=> NSString N

  • iOS7 Sampler 包含一组示例应用用来演示 iOS 7 的新特性,包括: Smile Detection Dynamic Behaviors Speech Synthesis Custom Transition 3D Map Sprite Kit Image Filters Map Directions Motion Effects (Parallax) Multipeer Connect

  • iOS7 Menu 实现了类似 iOS 7 的 RESideMenu 的效果,可通过 Storyboards 进行配置,支持手势操作。

  • 问题内容: 我在Android的JSON解析中进行了很多搜索,但并不太确定。关于JSON解析,实际上有一个简短的想法,但还不清楚。 如何在应用程序中实现JSON解析? 问题答案: 这是一个非常简单的JSON字符串 为了得到它的值,使用像这样: 这是一个稍微复杂的json字符串 为了从此用途中提取值 希望这个对你有帮助...........

  • 问题内容: 我已经完成了有关iOS中JSON的Raywenderlich教程,但是我很难将其调整为适合自己的JSON文件。这是 我的JSON : 这是 我的代码 : 日志返回。 问题答案: 你这样做是不对的。您已正确将JSON数据填充到字典(名为)中。但你有一个(被称为你的主要内部)和价值的是内部数组。 正确的代码是: 了解概念。这取决于你的内心里有什么。如果它是一个数组(在Values内部),则