在Java中操作JSON列表和映射

时间:2012-08-03 12:24:24

标签: java json json-simple

我正在开发一个将JSON类型字符串保存/检索到数据库的项目。

一切正常,即保存和更新对于类型String,Number and Boolean是安全的,但对于List and Map,我想看看当数据返回时操作List和Map的安全方法是什么特别是当列表中的项目变大时,即数千个项目,例如“朋友”和“粉丝”列表中的数据库

在Java中处理JSON ListMap时,我也担心潜在的数据损坏。

使用JSON.Simple库更新列表和地图的安全方法是什么,而不是在内存中加载所有内容(每个项目)。

例如,我只需要在存储在数据库中的JSON列表字符串中插入一(1)项。

1 个答案:

答案 0 :(得分:1)

JSON不适合ORM(对象关系映射)。这就是为什么NoSQL数据库将JSON存储为文档(即整个事物)的原因。因此,JSON.Simple不支持延迟加载JSON结构的一部分。

关系数据库没有很好地映射到JSON(基元除外),因为List的自然数据结构是1:N映射,其中列表类型具有索引列(即列表中的元素)Map需要N:M映射。

因此,更好的解决方案可能是将整个JSON字符串存储在CLOB中(而不是试图将其拆分)或将整个JSON字符串保存在CLOB +中提取几个关键字段,以便您可以正确地索引数据。

但是当您使用JSON时,您将需要编写自己的OR映射器,它支持延迟加载JSON数组和映射,或者您必须每次都将整个结构读入RAM。