2013-05-15 2 views
7

Я сохраняю строку json в текстовое поле в mysql. После вставки я хочу обновить строку json и добавить в нее идентификатор строки mysql с помощью jackson json.Добавить свойство json string с jackson json

У меня есть Java String, который находится в формате Json

{ 
    "thing":"val" 
} 

Я ищу, чтобы добавить еще K/V без написания строк кода.

, чтобы, наконец, это:

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

я могу преобразовать свою строку в JsonNode:

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

Глядя сделать что-то вроде этого

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

затем обновить в моем тексте поле с новой json-строкой в ​​mysql

Я не могу это сделать. Я не хочу использовать много классов, есть ли простой способ сделать это с помощью джексона?

+0

Звучит как странное требование. Можете ли вы привести пример того, чего вы пытаетесь достичь? – NilsH

+0

Я обновляю сообщение – BigDong

+0

Попробуйте обновить свой вопрос вместо кода примера. – NilsH

ответ

23

Попробуйте литья ваш JsonNode Ань com.fasterxml.jackson.databind.node.ObjectNode и затем вызвать поместитьset (или replace) на нем.

+0

Этого требует больше голосов - джед, это спасло мне массу времени. – Spedge

+4

* put * метод в ObjectNode устарел в версии 2.2. Вам нужно использовать * set * или * replace *. –

+0

есть ли способ использовать Джексона, чтобы просто изменить * имя * свойства в строке JSON? То есть Предположим, я хочу изменить «id»: 42' на '' my_id ': 42' - не нужно знать значение 42 и повторно создать свойство? – mmcrae

Смежные вопросы