多级 JSON 缺少属性类型(字典/数组)

Posted

技术标签:

【中文标题】多级 JSON 缺少属性类型(字典/数组)【英文标题】:Attributed type(Dictionary/array) missing for multi level JSON 【发布时间】:2013-09-04 13:49:14 【问题描述】:

我有这个示例 JSON 文件,解析后我使用核心数据来存储它

    
       "Accounts":[
          
             "accountname":"PNB",
             "accountnumber":"155666478",
             "mycredit":
                "first_deposits":"$45345",
                "sec_deposits":"$37000",
             ,
             "mydebits":
                "payments":"$54000",
                "paid":"$62000",
             
          ,
    ...
]

所以我创建了一个 Account 类(NSManagedObject 子类)。 在帐户类中,对于帐户名称和编号,我使用字符串属性类型。 但是对于 mycredit 和 mydebit,我没有找到任何字典属性类型。

那么如何处理呢?

【问题讨论】:

【参考方案1】:

字典没有内置的核心数据类型。您有以下选择:

展平结构并添加 4 个属性“first_deposits”、“sec_deposits”、“payments” 和“付费”。 创建附加实体“Credit”(具有属性“first_deposits”、“sec_deposits”) 和“借记”(具有“付款”和“已付款”属性),以及从“帐户”到这些实体的一对一关系。 (您可以也将字典存储为“可转换”属性。然后核心数据将 将字典转换为 SQLite 存储的二进制数据,并根据需要转换回来。但这还有其他含义,所以我不会在这里推荐它。例如,您不能使用字典键 在搜索谓词或键值编码方法中。)

【讨论】:

以上是关于多级 JSON 缺少属性类型(字典/数组)的主要内容,如果未能解决你的问题,请参考以下文章

JSON 消息对象缺少 id 属性

array.push 缺少类型中的以下属性

为啥使用 Json.NET 序列化为 json 字符串时缺少 DriveInfo 的属性?

为啥这个 foreach 循环缺少类中的属性?

JSON 到 SQL Server 2016 缺少数组中的行

将域转换为 JSON 时缺少版本属性