Замена JSON.simple на Джексона - PullRequest
       2

Замена JSON.simple на Джексона

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

Я хотел бы заменить JSON.simple на Джексона в следующем фрагменте кода:

JSONObject request = new JSONObject();
request.put("String key", /String value/);
request.put("String key", /int value/);
...

Это выглядит так:

ObjectMapper mapper = new ObjectMapper();
JsonNode request = mapper.createObjectNode();
((ObjectNode) request).put("String key", /String value/);
((ObjectNode) request).put("String key", /int value/);

Я нашел слишком сложным и уродливымс кастингом и дополнительной декларацией.Я делаю это неправильно, какой-нибудь совет?

(Я хотел бы отправить этот JSON через объект REST) ​​

Ответы [ 3 ]

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

Эта ссылка содержит довольно хорошую информацию.Я чувствую, что вы должны иметь объекты вместо того, чтобы вручную строить свой JSON.

https://www.baeldung.com/jackson-object-mapper-tutorial

public class Car {

    private String color;
    private String type;

    // standard getters setters
}

Тогда

ObjectMapper objectMapper = new ObjectMapper();
Car car = new Car("yellow", "renault");
String output = objectMapper.writeValueAsString(car);

Вывод:

{"color":"yellow","type":"renault"}
0 голосов
/ 07 октября 2018

Ваш код должен быть таким

            ObjectMapper mapper = new ObjectMapper();
            ObjectNode request = mapper.createObjectNode();
            request.put("String key", /String value/);
            request.put("String key", /int value/);
0 голосов
/ 07 октября 2018

Используйте ObjectNode вместо JsonNode.Попробуйте это:

    ObjectNode request = mapper.createObjectNode();
    request.put("key", "val");
    System.out.println(request.toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...