我想使用Java重命名JSON对象的键。
我的输入JSON是:
{
"serviceCentreLon":73.003742,
"type":"servicecentre",
"serviceCentreLat":19.121737,
"clientId":"NMMC01"
}
我想将其更改为:
{
"longitude":73.003742,
"type":"servicecentre",
"latitude":19.121737,
"clientId":"NMMC01"
}
例如,我想将"serviceCentreLon"
重命名为"longitude"
,将"serviceCentreLat"
重命名为"latitude"
。我在代码中使用JSONObject
类型。
8条答案
按热度按时间szqfcxe21#
假设您使用的是json.org库:一旦您有了JSONObject,为什么不这样做呢?
您可以创建一个
rename
方法来执行此操作(然后调用它两次),但如果这些是您要重命名的 * 唯一 * 字段,那么这样做可能有些过头。wdebmtf22#
转换回json对象
np8igboo3#
我不知道我是否理解你的问题是正确的,但下面的工作不应该吗?
您可以使用正则表达式替换密钥,例如:
它不是那么“干净”,但它可能会很快完成工作。
t3irkdon4#
以Danyal Sandeelo的方法为基础,而不是:
使用
此方法显式地匹配JSON键语法,并避免了键值在JSON字符串的其他地方作为有效数据出现的模糊错误。
2uluyalo5#
解决这个问题的最佳方法是解析JSON数据,然后替换密钥。有许多解析器可用-- google gson、Jacksonserializer、deserializer、org.json.me就是处理JSON数据的几个这样的java库。
http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/
如果你有一个非常通用的和相对庞大的JSON数据,这是一个很好的处理方法。当然,你必须花时间学习这个库,以及如何很好地使用它。
X1 E1 F1 X是另一种这样的解析器。
https://stleary.github.io/JSON-java/是最简单的一种,特别是当您不需要任何严重的序列化或反序列化时
yc0p9oo06#
具有Map到此对象数据结构的对象。
使用GSON解析器或Jackson解析器将此json转换为POJO。
然后将此对象Map到另一个具有所需配置的Java对象
使用相同的GSON解析器将该POJO转换回json。
把这个作为进一步的参考
http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/
jljoyd4f7#
我在工作中遇到过这个问题,所以我做了一个有用的
Utils
类,我想和大家分享一下。可以通过运行
App
来测试此类v8wbuo2f8#
我遇到过这样一个场景:我想从嵌套对象中的未知数目的键中删除一个连字符。
所以这个:
会是这样的:
一个递归方法(kotlin)..通过Jackson使用了一个列表