我有一个非常大的JSON文件太大,无法使用ObjectMapper.read值()到JsonNode的问题。我想在Android上使用杰克逊库解析大型JSON时使用内存不足错误的解决方案,除了JSON文件是一个具有字段名称的单个对象,因此我无法创建一个模型POJO来反序列化。
对象内部的每个属性都有相同的格式,我可以忽略这些内部对象的许多属性(我已经有了一个POJO类来建模)。如果JSON文件是一个数组而不是一个对象,那么我就更容易解决这个问题。(我不是创建文件的人,只是从中读取。)
(我在下面发布我的解决方案,但我希望有更好的解决方案!)
由于无法在ObjectMapper中加载原始文件,我决定解析JSON文件并将其重写为数组。逐行读写,我转换了一个看起来像这样的文件(但要大得多):
{
"Unexpected Monkey" : {
"name" : "UnexpectedMonkey",
"age" : 7
},
"Another Unexpected Name" : {
"name" : "Another Unexpected Name",
"age" : 2
}
}
进入:
[
{
"name" : "UnexpectedMonkey",
"age" : 7
},
{
"name" : "Another Unexpected Name",
"age" : 2
}
]
然后我就可以解析文件了如何使用Jackson解析JSON字符串到数组
我目前正在开发一个Java web应用程序,它使用Magento REST API公开的JSON数据。api返回的数据示例如下: 我的应用程序中有一个Java类,如下所示: 我想对数据进行反序列化,并将其转换为,但我总是得到以下错误: 这是我用来将JSON响应反序列化为ArrayList的语句行: 有人能分享一些见解吗?我看到一些例子,返回的JSON对象前面没有任何ID。那是因为我做错了什么吗?非
我有一个杰克逊多态性问题。我想将JSON数据反序列化为多态类型。通过阅读Jackson文档,我可以将JSON数据反序列化为多态类型。不过,我有一个特例。我有一个类结构如下: 注意:类栏除了继承的“类型”字段之外没有任何其他成员变量。 如果我传入上面的json数据,如: 我得到了类似“无法从end_token中反序列化类条”的信息。我相信这是因为JsonTypeInfo和JsonSubTypes注释
我需要反序列化以下json: 将它的< code>id属性设置为< code>foo_id json属性。 我需要在自定义反序列化程序中执行此操作。实现这一点最简单的方法是什么? 我想以某种方式将json“转换”为 然后将此委托给杰克逊。 在本例中,对象的类型为Foo,但其他对象可能不属于此类。另外,在本例中,json是一个数字,但如果它也是一个字符串,我希望支持。所以,我需要一种通用的方法来做到
我试图获取我的Web请求JSON输出并解析它。这是输出 我为这些结果创建了公共课程 当我尝试反序列化Record类并选择名称时,我从RootObject类获得名称。这是我的密码
我有一个抽象的超类A,我有几个具体的子类B,C,D 在序列化方面,我执行以下操作: 没问题。我现在想反序列化这个。我知道我不能实例化一个抽象类,那么这是如何实现的呢? 这不起作用: 编辑:我把这个添加到我的抽象超类中:(仍然没有运气) 再次编辑:我现在遇到以下错误: 看看JSON,@class不在那里。我怎样才能做到?我试过: 但这并没有奏效。有这方面的例子吗?如何告诉对象映射器对类使用我的注释?
我有一个JSON,它带有一个包含任意键和值类型的标记,我想将其读入Java中POJO内的映射。映射将是指向JsonValue或JsonNode之类的字符串。我正在使用对象映射器解析json。 有人对如何设置我的POJO来与杰克逊一起完成这一任务有什么建议吗?还是一种更好的方式? Json示例: 映射方法: 我的POJO: