ошибка при передаче JSON ответа в Java объект с помощью Jackson [закрыт]

194
08 марта 2022, 19:50
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 2 года назад.

Улучшить вопрос

Так я и пытаюсь понять как правильно мапить JSON на объект. То что на скриншоте видите - это и есть мапинг JSON c Java объектом ( как я думал). Делал по аналогии mkyong.com/java/jackson-2-convert-java-object-to-from-json . Мне казалось , если я запущу main метод, то он передаст в переменную citylist результат json ответа. Объект Citylist просто POJO объект. Мне бы понять о чем ошибка говорит.

Хочу ответ JSON через GET запрос (URL) передать в объект Java

ВОТ КОД:

import java.net.URL;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonExample2 {
    public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();
        try {
            URL url = new URL("https://someURL");
            // JSON file to Java object
            CityList citylist = mapper.readValue(url, CityList.class);

            // compact print
            System.out.println(citylist);


        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Простой POJO объект CityList:

   package model;
    import java.util.Map;
    public class CityList {
    private Map<String,String>plus_code;
    public Map<String, String> getPlus_code() {
        return plus_code;
    }
    public void setPlus_code(Map<String, String> plus_code) {
        this.plus_code = plus_code;
    }

    }

Вот ответ JSON , пример:

{
   "plus_code" : {
      "compound_code" : "P27Q+MC New York, NY, USA",
      "global_code" : "87G8P27Q+MC"
   }
}
Answer 1

Представил ваш json пример в виде объекта

public class CityList {
    @JsonProperty("plus_code")
    private PlusCode plusCode;
    public PlusCode getPlusCode() {
        return plusCode;
    }
    public void setPlusCode(PlusCode plusCode) {
        this.plusCode = plusCode;
    }
    public class PlusCode {
        @JsonProperty("compound_code")
        private String compoundCode;
        @JsonProperty("global_code")
        private String globalCode;
        public String getCompoundCode() {
            return compoundCode;
        }
        public void setCompoundCode(String compoundCode) {
            this.compoundCode = compoundCode;
        }
        public String getGlobalCode() {
            return globalCode;
        }
        public void setGlobalCode(String globalCode) {
            this.globalCode = globalCode;
        }
    }
}

Проверил

public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();
        String json = "{ \"plus_code\" : { \"compound_code\" : \"P27Q+MC New York, NY, USA\", \"global_code\" : \"87G8P27Q+MC\" } }";
        try {
//            URL url = new URL("");
            // JSON file to Java object
            CityList citylist = mapper.readValue(json, CityList.class);
            // compact print
            System.out.println(citylist.getPlusCode().getCompoundCode() + " " + citylist.getPlusCode().getGlobalCode());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

И получил необходимый результат

READ ALSO
JHipster microservices

JHipster microservices

Разбирасюь с JHipster

177
Движении кнопки по нажатию клавиши

Движении кнопки по нажатию клавиши

такое задание у меня:

119
Notification не отображает картинку

Notification не отображает картинку

Notification уведомление не на всех телефона подтягивает картинкуиспользую

115
Как повернуть часть SVG элемента с помощью CSS?

Как повернуть часть SVG элемента с помощью CSS?

Я хочу повернуть только часть SVGНапример, колеса велосипеда с помощью transform: rotate()

176