Как создать карту Ha sh с Json в виде массива - PullRequest
0 голосов
/ 04 мая 2020

Как показано ниже Json, я хочу создать HashMap-

{
    "name": "John",
    "lname": "Smith",
    "age": "25",
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York"

    },
    "phoneNumbers": [
        {
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "fax",
            "number": "646 555-4567" 
        }
    ] 
}

Я пробовал приведенный ниже код, но я не уверен, как добавить "PhoneNumber", так как в нем есть массив. помогите мне-

HashMap<String,Object> jsonAsMap=new HashMap<String,Object>();
jsonAsMap.put("name", "Rajesh");
jsonAsMap.put("lname", "Singh");
jsonAsMap.put("age", "45");

HashMap<String,Object> map=new HashMap<String,Object>();

map.put("streetAddress", "123 Civil lines");
map.put("city", "Delhi");
jsonAsMap.put("address", "map");

1 Ответ

1 голос
/ 04 мая 2020

Идея состоит в том, чтобы создать HashMap с массивами в виде списка,

Arrays.asList(new HashMap<String, Object>()

Полный код ниже:

    Map<String, Object> map = new HashMap<>();
    map.put("name", "John");
    map.put("lname", "Smith");
    map.put("age", "25");

    HashMap<String,Object> address=new HashMap<>();

    address.put("streetAddress", "123 Civil lines");
    address.put("city", "Delhi");
    map.put("address", address);

    map.put("phoneNumbers", Arrays.asList(new HashMap<String, Object>() {
        {
            put("type", "home");
            put("number", "212 555-1234");
        }},new HashMap<String, Object>() {{
            put("type", "fax");
            put("number", "646 555-4567");
        }}
        ));

    String json = new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(map);

    System.out.println(json)

Это сгенерирует вывод в json, но не в тот же заказ, что и json, который вы разместили, если вам нужен тот же заказ, используйте LinkedHashMap

...