2013-05-15 92 views
7

我将一个json字符串存储到mysql中的文本字段中。 插入后,我想更新我的json字符串,并将mysql行id添加到它与杰克逊json。使用jackson json将属性添加到json字符串

我有一个Java字符串是JSON格式

{ 
    "thing":"val" 
} 

我期待再添K /电压而不写代码的行。

终于有这样的:

{ 
    "thing":"val" 
    "mysqlId":10 
} 

我可以在我的字符串转换为JsonNode:

ObjectMapper mapper = new ObjectMapper(); 
JsonNode json = mapper.readTree(jsonStr); 

希望做这样的事情

json.put("mysqlId",10); 
json.toString(); 

然后在我的文字更新在mysql中使用新的json字段的字段

我做不到。 我不想使用很多类是有没有一个简单的方法来与杰克逊这样做?

+0

听起来像一个奇怪的要求。你能举一个你想要实现的例子吗? – NilsH

+0

我在更新文章 – BigDong

+0

尝试使用示例代码更新您的问题。 – NilsH

回答

23

试试您铸造JsonNodecom.fasterxml.jackson.databind.node.ObjectNode,然后调用set(或replace)就可以了。

+0

这需要更多的投票 - jeez为我节省了大量的时间。 – Spedge

+4

* Object *中的put *方法在v2.4中已弃用。您需要使用* set *或* replace *。 –

+0

有没有一种方法可以利用Jackson只更改JSON字符串中某个属性的*名称*?即假设我想将''id':42'更改为''my_id':42' - 而不必知道值42并重新创建属性? – mmcrae

相关问题