Java 使用jackson json将特定位置的属性添加到json字符串中
我知道如何使用jackson withJava 使用jackson json将特定位置的属性添加到json字符串中,java,json,jackson,Java,Json,Jackson,我知道如何使用jackson withObjectNode.put()添加属性,但是有没有办法在特定位置插入属性? 例如,如果我有这个JsonNode: { "property1":"val1", "property2":"val2", "property3":"val3" } 我想要的是: { "property1":"val1", "property4":"val4", "property2":"val2", "property3":
ObjectNode.put()
添加属性,但是有没有办法在特定位置插入属性?
例如,如果我有这个JsonNode:
{
"property1":"val1",
"property2":"val2",
"property3":"val3"
}
我想要的是:
{
"property1":"val1",
"property4":"val4",
"property2":"val2",
"property3":"val3"
}
使用Jackson如何实现这一点?JSON规范不要求对对象进行排序(它们可能取决于实现,也可能不取决于实现),因此您不应该依赖它。但是,数组是显式排序的: 6个对象 对象结构表示为围绕零个或多个名称/值对的一对花括号标记。A. 名称是一个字符串。每个名称后面都有一个冒号标记, 将名称与值分开。单个逗号标记 将值与下列名称分开 7阵列 阵列结构是一对方括号 围绕零个或多个值的标记。这些值是 用逗号分隔。这些值的顺序很重要
(from)使用
对象映射器
,或者使用@JsonPropertyOrder(字母=true)
或者明确指定的顺序
LinkedHasMap
,那么每次你想插入到它的其他地方而不是最后,你都可以重新填充整个对象。但是,37MB并不是很小,而且效率很低。顺便说一下,它可能会在下一版本的Jackson上停止工作,或者使用另一个JSON库。所有这些都表明我不推荐它。也许JSON不是您想要的格式,或者您需要数组而不是objectsOh很好,我想ObjectMapper
是我想要的,我会试试看,谢谢!这很好,但假设他的配置保存在一个类中,情况可能并非如此,例如,它可能只是数据。在这种情况下,他将不得不编写一个100%的样板类,这可能是可以接受的,但可以说不是greatHi Matt,是否可以在不序列化的情况下处理它?要明确的是,我要做的是读取一个json文件,插入一个属性,然后写回该文件。你说的“没有序列化”是什么意思?将文件写入json就是序列化。嗯。。。好的,根据我的理解,如果我想写回,我需要创建类来处理数据。这是真的吗?例如,如果我有一个car对象,我需要一个car类来处理数据,然后修改数据并写回文件。我可以在没有这些类的情况下修改json文件吗?