Разбор составного ключа json - PullRequest
0 голосов
/ 07 октября 2019

У меня есть json, как {"xxx.Name-xxx-1111111":"100"}, где 1111111 - это отметка времени, а 100 - это значение

Мне нужно указать метку времени и значение в jpa и вставить в базу данных через пружину.

Как мне разобрать эту строку и поместить ее в jpa?

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Вы можете проанализировать данную строку JSON с помощью популярных библиотек JSON, таких как Джексон или Гсон , следующим образом.

Сначала 1111111 не является допустимым Timestamp форматом, он должен выглядеть следующим образом: {"xxx.Name-xxx- 2019-10-08 09: 00: 00 ": "100"}.

Во-вторых, используйте Jackson API для анализа строки JSON для получения полей ключа и значения.

В-третьих, я предполагаю, что префикс значения временной метки равен xxx.Name-xxx- , затем вы можете получить его (говорит: 2019-10-08 09: 00: 00 ) с помощью String.replace().

Пример кода:

String jsonStr = "{\"xxx.Name-xxx-2019-10-08 09:00:00\":\"100\"}";

ObjectMapper mapper = new ObjectMapper();
for (Iterator<Map.Entry<String, JsonNode>> it = mapper.readTree(jsonStr).fields(); it.hasNext();) {
    Map.Entry<String, JsonNode> field = it.next();
    String key = field.getKey();
    int value = field.getValue().asInt();
    System.out.println("key:       " + key);
    System.out.println("value:     " + value);

    Timestamp timestamp = Timestamp.valueOf(key.replace("xxx.Name-xxx-", ""));
    System.out.println("timestamp: " + timestamp);
}

Вывод на консоль:

key:       xxx.Name-xxx-2019-10-08 09:00:00
value:     100
timestamp: 2019-10-08 09:00:00.0

Наконец, я думаю, вы можете напрямую использовать эти две переменные: timestamp и value дляJPA.

0 голосов
/ 07 октября 2019

Есть несколько популярных библиотек, которые могут отображать JSON на объекты с типами по вашему выбору.

GSON от Google хорош, и его использование очень просто: https://mvnrepository.com/artifact/com.google.code.gson/gson

JSON to Object

Gson gson = new Gson();
MyObject myObject = gson.fromJson(jsonString, MyObject.class)

Это должно привести JSON в нужный вам формат, чтобы вы могли сохранить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...