2013-05-15 11 views
7

Przechowuję ciąg jsonów w polu tekstowym w mysql. Po wstawieniu chcę zaktualizować ciąg json i dodać do niego id linii mysql za pomocą json json.Dodaj właściwość do łańcucha json z jsonsem jsonem

Mam String Java, który jest w formacie JSON

{ 
    "thing":"val" 
} 

szukam dodać kolejny K/V bez pisania wierszy kodów.

aby wreszcie mieć to:

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

mogę przekonwertować ciąg do JsonNode:

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

Patrząc zrobić coś takiego

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

następnie zaktualizować w moim tekście pole z nowym ciągiem json w mysql

Nie mogę tego zrobić. Nie chcę używać wielu klas jest prosty sposób, aby to zrobić z jackson?

+0

Brzmi jak dziwne wymaganie. Czy możesz podać przykład tego, co próbujesz osiągnąć? – NilsH

+0

Aktualizuję wpis – BigDong

+0

Spróbuj zaktualizować swoje pytanie za pomocą przykładowego kodu. – NilsH

Odpowiedz

23

Spróbuj oddawania JsonNode do com.fasterxml.jackson.databind.node.ObjectNode a następnie wywołanie umieścićset (lub replace) na nim.

+0

To wymaga więcej głosów - jeez to zaoszczędziło mi mnóstwo czasu. – Spedge

+4

* Metoda put * w ObjectNode jest przestarzała w wersji v2.4. Musisz użyć * set * lub * replace *. –

+0

jest sposób na wykorzystanie Jacksona, aby zmienić * nazwę * właściwości w ciągu JSON? To znaczy. Przypuśćmy, że chcę zmienić ''id': 42' na' 'my_id': 42' - bez znajomości wartości 42 i ponownego utworzenia właściwości? – mmcrae

Powiązane problemy