Анализировать JSON-запись, чтобы извлечь ключ и значение и поместить в Map в Java - PullRequest
0 голосов
/ 12 июля 2011

В моей таблице есть один столбец, в котором будут храниться данные в строковом формате. Пример данных:

{"pre-date":{"enable":true,"days":"3","interval":"1","mail-template":"582"},"on-date":{"enabled":false},"post-date":{"enabled":false}}

, и строка содержит данные, такие как данные json, но когда я отправлю эту запись для контроллера, чтобы просмотреть еедолжен быть в формате

enable : true
days : 3
interval : 1

, чтобы я мог установить значения для соответствующих элементов формы, как это сделать в любой справке Java

Ответы [ 2 ]

3 голосов
/ 12 июля 2011

Считайте полную строку JSON из базы данных, затем проанализируйте ее, используя анализатор JSON, и извлеките интересующую вас информацию из структуры данных / объекта, возвращенного при разборе.

Существует множествоДоступны парсеры JSON.Посмотрите на эту страницу , где перечислены некоторые из них в разделе Java (вам нужно немного прокрутить вниз).

1 голос
/ 12 июля 2011

Джексон обеспечивает наилучшую поддержку простого преобразования любого объекта JSON в Java Map, состоящую только из компонентов Java SE.

Ниже приведен пример использования JSON из оригинальноговопрос.

// {"pre-date":{"enable":true,"days":"3","interval":"1","mail-template":"582"},"on-date":{"enabled":false},"post-date":{"enabled":false}}
String json = "{\"pre-date\":{\"enable\":true,\"days\":\"3\",\"interval\":\"1\",\"mail-template\":\"582\"},\"on-date\":{\"enabled\":false},\"post-date\":{\"enabled\":false}}";

ObjectMapper mapper = new ObjectMapper();

// To put all of the JSON in a Map<String, Object>
Map<String, Object> map = mapper.readValue(json, Map.class);

// Accessing the three target data elements
Map<String, Object> preDateMap = (Map) map.get("pre-date");
System.out.println(preDateMap.get("enable"));
System.out.println(preDateMap.get("days"));
System.out.println(preDateMap.get("interval"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...