JSON数组到核心数据实体

Posted

技术标签:

【中文标题】JSON数组到核心数据实体【英文标题】:JSon array to core data entity 【发布时间】:2014-04-09 21:41:19 【问题描述】:

我有一个关于解析 Json 字符串的问题。 如果我得到一个像这样的字符串:

[["AR","Argentina","flag_of_argentina","en","F","1"],
["AU","Australia","flag_of_‌​australia","en","B","4"]]

当我通常看到具有以下内容的 Json 时,如何将此字符串保存到实体中:

(
   (
    "Group_id": 1,
    "Date" : "2014-04-08",
    "Hour" : "18:00:00",
    "Location":"Guayaquil, Ecuador",
    "State" : A
),
...

如果我必须制作一个数组或其他东西来将其存储到核心数据中的实体中,我该怎么做?

希望我的问题做得很好,感谢您的帮助。非常感谢。

【问题讨论】:

那是真实 JSON 的粘贴吗?第二组 JSON 根本无效。它看起来像来自NSArray 的日志真的...... 第一个是我得到的第二个字符串作为示例。我朋友的应用程序在android中使用了相同的字符串并且运行良好,我对在ios中使用它有一些疑问。 真的很抱歉这是我得到的字符串:[["AR","Argentina","flag_of_argentina","en","F","1"],["AU","澳大利亚","flag_of_australia","en","B","4"]] 第一个是真正的JSON,第二个是一个包含JSON数据的NSArray的NSLog。它们看起来相似但不相同。要在您之间进行转换,请使用 NSJSONSerialization。 parse JSON string into array of objects Objective C 的可能重复项 【参考方案1】:

Cocoa Touch 提供了一个内置类来帮助您序列化这些数据。它叫做NSJSONSerialization

所以,在我看来,您在数组中有数组。首先,您需要将 NSString 转换为 NSData:

NSData *JSONdata = [yourJSONString dataUsingEncoding:NSUTF8StringEncoding];

然后序列化成数组:

NSArray *JSONArray = [NSJSONSerialization JSONObjectWithData:JSONdata options:NSJSONReadingMutableContainers error:&error];

然后你可以通过写来访问任何子数组:

NSArray *countryData = [JSONArray objectAtIndex:i];

您可以从那里访问您需要的数据。

~

至于构建 JSON 数据,您需要构建一个 NSMutableDictionary 并相应地填充它。完成后,使用同一类 NSJSONSerialization 将其转换为 JSON 字符串。

【讨论】:

非常感谢它对我帮助很大

以上是关于JSON数组到核心数据实体的主要内容,如果未能解决你的问题,请参考以下文章

将核心数据行从一个表(实体)映射到 [CLLocation] 数组?

使用 RestKit 将一个裸露的 URL 数组映射到核心数据实体

将对象插入核心数据实体时处理重复项

RKEntityMapping JSON 数组 RKResponseDescriptor 键路径问题可能

RestKit 2.0 - 将 json 数组映射到实体关系会丢失数组序列

JSON-JSON字符串转换成JSON对象JSON对象数组java实体类以及保存到List列表中