Как динамически отобразить json из java объекта? - PullRequest
2 голосов
/ 05 марта 2020

Как мы можем сопоставить объект java с json? Java объект будет иметь карту и некоторые другие строковые свойства. Я хочу, чтобы при преобразовании объекта java в json ключи карты были бы такими, как root ключ, а не вложенный ключ.

Пример Java Объект:

class Demo {
    String name;
    String designation;
    Map<String,Object> attribute;
}

Теперь, если карта имеет значения, как показано ниже:

Map<String,Object> attribute = new HashMap<>();
attribute.put("score",190);
attribute.put("status","allowed");

Вывод должен быть таким, как показано ниже:

{
  "name":"jack",
  "designation":"Tester",
  "score":190,
  "status":"allowed"
}

1 Ответ

0 голосов
/ 05 марта 2020

Если я правильно понял - используй Джексона. Пример:

Java Объекты до JSON

ObjectMapper mapper = new ObjectMapper();

// Java object to JSON file
mapper.writeValue(new File("c:\\test\\staff.json"), new Staff());

// Java object to JSON string
String jsonString = mapper.writeValueAsString(object);

JSON до Java Объекты

ObjectMapper mapper = new ObjectMapper();

//JSON file to Java object
Staff obj = mapper.readValue(new File("c:\\test\\staff.json"), Staff.class);

//JSON URL to Java object
Staff obj = mapper.readValue(new URL("http://some-domains/api/name.json"), Staff.class);

//JSON string to Java Object
Staff obj = mapper.readValue("{'name' : 'mkyong'}", Staff.class);

Репо: https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind

Джексон JSON Учебное пособие: https://www.baeldung.com/jackson

Другой пример: https://mkyong.com/java/jackson-2-convert-java-object-to-from-json/

...