【发布时间】:2013-09-12 13:08:36
【问题描述】:
我正在使用核心数据来检索一个可传输对象,然后将其保存为 NSArray,如下所示:
NSArray *bigDataResultsArray = [XAppDelegate.managedObjectContext executeFetchRequest:bigDataFetchRequest error:&error];
NSArray *bigDataResultsArrayJSON = [bigDataResultsArray valueForKey:@"bigData"];
我可以将 valueForKey 缩小为一个较小的对象数组,但它只显示为 1 个对象。
当我尝试从以下内容中提取“值”时,我收到错误,即它不符合值。数据格式如下,不会解析成JSON:
我尝试使用以下方法提取价值:
NSArray *styleArray = [bigDataResultsArrayJSON valueForKey:@"Styles"];
NSLog(@"%@", [styleArray valueForKey:@"Value"]);
这给出了一个错误。但是,如果我记录样式数组,我会得到以下信息“
(
{
Total = 1;
Value = 5;
},
{
Total = 1;
Value = "5.5";
},
{
Total = 75;
Value = 6;
},
{
Total = 4;
Value = "6.5";
},
{
Total = 239;
Value = 7;
},
{
Total = 149;
Value = "7.5";
},
{
Total = 260;
Value = 8;
},
{
Total = 214;
Value = "8.5";
},
{
Total = 259;
Value = 9;
},
{
Total = 196;
Value = "9.5";
},
{
Total = 254;
Value = 10;
},
{
Total = 148;
Value = "10.5";
},
{
Total = 237;
Value = 11;
},
{
Total = 38;
Value = 12;
},
{
Total = 2;
Value = 13;
}
)
)
谁能帮助我将这些数据的最后一层提取到一个值对象数组中。我尝试转换为 NSData 然后转换为 JSON 如下,但数据的格式不会解析:
NSData *raw = [[ra valueForKey:@"bigData"] dataUsingEncoding:NSUTF8StringEncoding]
非常感谢任何帮助。
【问题讨论】:
-
你到底想做什么?您想将数组存储在托管对象中而不创建新实体和设置新关系?
-
“当我尝试提取“价值”时......” - 你到底尝试了什么? - "...并且不会解析为 JSON" - 你看过 NSJSONSerialization 吗?
-
您好,我已经更新了我的答案。我正在尝试从一个更大的数据对象中获取一组值项。我看起来像 NSJSONSerialization 但在将数组/str/data 传递给编码器时出错。提前致谢
-
@EHarpham:
coloursArray是什么?它没有在您的代码中定义。 (您确实复制/粘贴了真实代码,不是吗?) - 请展示您对 NSJSONSerialization 的尝试。 -
道歉。 coloursArray 应该是 stylesArray。已编辑代码。
标签: ios objective-c json parsing core-data