ios - NSJSONSerialization - 核心数据与 JSON 的关系
<p><p>我一直在尝试创建一个类以允许我将核心数据输出到 JSON。</p>
<p>我已经设法让它工作到一定程度,但是我似乎在输出关系上遇到了障碍</p>
<pre><code>NSMutableArray * objectsArray = [ init];
for (NSManagedObject * object in array) {
if() {
;
} else {
NSMutableDictionary *fields = ;
for (NSAttributeDescription *attribute in [ properties]) {
NSString *attributeName = attribute.name;
id attributeValue = ;
if( > 0)
{
NSArray *chunks2 = ;
for (NSString * string in chunks2) {
if()
{
forKey:attributeName];
break;
}
}
}
else
{
if (attributeValue) {
forKey:attributeName];
}
}
}
;
}
}
NSError *error;
NSData * JSONData = ;
</code></pre>
<p>只要我没有关系,这输出数据就很好,例如一个 -> 很多或很多 -> 一个</p>
<p>输出如下</p>
<pre><code>{
"mySegmentation": "(null)",
"number": "9452062"
},
{
"mySegmentation": "<NSManagedObject: 0x212050b0> (entity: SegmentationCodes; id: 0x212090b0 <x-coredata://BEC52F5F-EA26-4CFF-BCCB-09DA163F465D/SegmentationCodes/p13> ; data: <fault>)",
"number": "9448502"
},
</code></pre>
<p>我怎样才能让它也缩进并输出关系中的信息?</p>
<p>我一直在为此摸不着头脑,希望能得到帮助</p>
<p>谢谢马特</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>来自文档:</p>
<p>可以转换为 JSON 的对象必须具有以下属性:</p>
<ul>
<li>顶级对象是 NSArray 或 NSDictionary。</li>
<li>所有对象都是 NSString、NSNumber、NSArray、
NSDictionary 或 NSNull。</li>
<li>所有字典键都是 NSString 的实例。</li>
<li>数字不是 NaN 或无穷大。</li>
</ul>
<p>所以,你要做的就是用字典、数组、字符串、数字、空值组成一个字典或数组。</p>
<p>CoreData 中的关系通常是不排序的,所以 NSSets,你必须从集合中生成一个 NSArray(因此存在 Apple 的一个很好的方法)并将其作为特定键的值放入字典中。 </p>
<p>然后运行 <code>- dataWithJSONObject:options:error:</code> 例如(如您之前所做的)并检索正确的 JSON。</p>
<p>不确定缩进是否正确。你必须检查一下。</p>
<p>希望如此</p></p>
<p style="font-size: 20px;">关于ios - NSJSONSerialization - 核心数据与 JSON 的关系,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/17492514/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/17492514/
</a>
</p>
页:
[1]