Задать вопрос
@student_1

Как спарсить json?

Всем привет!
мне приходит уродский json, которую мне никак не спарсить, пожалуйста помогите с идеей.
json:
[
   {
      "0":{
         "created":"2022-03-02T00:16:55",
         "suip":"402058975408",
         "result":"Проведён",
         "operationNumber":"2593398468"
      },
      "1":{
         "created":"2022-03-02T01:22:05",
         "suip":"502556621789",
         "result":"Проведён",
         "operationNumber":"2593433213"
      },
      "2":{
         "created":"2022-03-02T02:06:40",
         "suip":"602214947363",
         "result":"Проведён",
         "operationNumber":"2593448946"
      }
   }
]


pojo:
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RequestRegister {
    private String created;
    private String suip;
    private String result;
    private String operationNumber;
}

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RequestRegisterBody {
    private Map<String, List<RequestRegister>>  registers;
}


Но при парсинге просто получаю null
  • Вопрос задан
  • 211 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 3
@Akela_wolf
Extreme Programmer
Насколько я вижу по структуре JSON у вас здесь List<Map<String, RegisterRequest>>
Ответ написан
Комментировать
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день.
Есть онлайн-сервис, который помогает создать pojo на основе json
Вот, что он выдал
-----------------------------------com.example.Example.java-----------------------------------

package com.example;

import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"0",
"1",
"2"
})
@Generated("jsonschema2pojo")
public class Example {

@JsonProperty("0")
public com.example._0 _0;
@JsonProperty("1")
public com.example._1 _1;
@JsonProperty("2")
public com.example._2 _2;

}
-----------------------------------com.example._0.java-----------------------------------

package com.example;

import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"created",
"suip",
"result",
"operationNumber"
})
@Generated("jsonschema2pojo")
public class _0 {

@JsonProperty("created")
public String created;
@JsonProperty("suip")
public String suip;
@JsonProperty("result")
public String result;
@JsonProperty("operationNumber")
public String operationNumber;

}
-----------------------------------com.example._1.java-----------------------------------

package com.example;

import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"created",
"suip",
"result",
"operationNumber"
})
@Generated("jsonschema2pojo")
public class _1 {

@JsonProperty("created")
public String created;
@JsonProperty("suip")
public String suip;
@JsonProperty("result")
public String result;
@JsonProperty("operationNumber")
public String operationNumber;

}
-----------------------------------com.example._2.java-----------------------------------

package com.example;

import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"created",
"suip",
"result",
"operationNumber"
})
@Generated("jsonschema2pojo")
public class _2 {

@JsonProperty("created")
public String created;
@JsonProperty("suip")
public String suip;
@JsonProperty("result")
public String result;
@JsonProperty("operationNumber")
public String operationNumber;

}

Сам сервис - https://www.jsonschema2pojo.org/
Ответ написан
@freedom1b2830
jackson databind вам в помощь:
создаете (можно статичный) objectmapper
и читаете строку
https://www.baeldung.com/jackson-mapping-dynamic-object

ОБЯЗАТЕЛЬНО ИСПОЛЬЗУЙТЕ ПОСЛЕДНЮЮ ВЕРСИЮ! Тк недавно была уязвимость в этой библиотеке

если используете maven:
mvn versions:display-dependency-updates
поменяете версии в pom.xml
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы