Как лучше создать JSON для примера ниже

1

У меня ниже данных с hashmap

{age={Middle-aged={yes=0.417, no=0.125}, youth={yes=0.25, no=0.5}, senior={yes=0.333, no=0.375}}}

Как я могу преобразовать эту хэш-карту ниже json

{"age":{"data":[{"key":"yes","values":[{"name":"Middle-aged","value":0.417},{"name":"youth","value":0.25},{"name":"senior","value":0.33}]},{"key":"no","values":[{"name":"Middle-aged","value":0.125},{"name":"youth","value":0.5},{"name":"senior","value":93}]}]}}

Для этого мне нужно сгруппировать свои данные, как это

yes- grp все да значения (средний возраст, старший, молодежь)

No-grp не имеет значения для (среднего возраста, старшего, молодого)

а затем создать класс POJO? Или я могу напрямую загрузить класс POJO.

Пожалуйста, предложите лучший способ.

  • 0
    Вы хотите только эту структуру? или вы пытаетесь сделать его более читабельным?
  • 0
    Как есть 3 значения attribute , classLable , distinctValue ... если вы хотите создать HashMap , то вы будете иметь к группе classLable и distinctValue и поместить его в качестве значения и атрибута в качестве ключа.
Показать ещё 7 комментариев
Теги:

2 ответа

0

Ниже структура будет полезна для получения требуемой структуры json.

class Age {
    private List<Data> data;
    //getter setter
}

class Data {
    private String key;
    private List<Values> values;
    //getter setter
}

class Values {
    private String name;
    private String value;
    //getter setter
}

Теперь итерации через ваш HashMap и заполните значения в объекте класса Age. И затем вы можете использовать GSON или Jackson для преобразования объекта Age в строку json.

  • 0
    @SreeVeni, ваш вопрос был решен?
0

Вы можете смоделировать свою структуру, используя POJO для преобразования в плоскую структуру:

public class MyData{
    private String groupName;
    private String yesNoGroup;
    private double value;
    public MyData(String n, String g, double v){
        groupName=n;
        yesNoGroup=g;
        value=v;
    }
    // getter and setters
}

Затем преобразуйте их в строку JSON, используя GSON или Jackson

Помимо преобразования, я бы предложил вам преобразовать данные в более плоскую структуру. Теперь вы выглядите как нормализованная схема базы данных, но это сделало слишком много слоев в JSON. Если бы вы могли денормализовать его и дать лучшие имена, чем "значение", "ключ" и т.д., JSON был бы более читабельным и более простым для преобразования.

{
    "age":{
        "data":[
            {
                "key":"yes",
                "values":[
                    {
                        "name":"Middle-aged",
                        "value":0.417
                    },
                    {
                        "name":"youth",
                        "value":0.25
                    },
                    {
                        "name":"senior",
                        "value":0.33
                    }
                ]
            },
            {
                "key":"no",
                "values":[
                    {
                        "name":"Middle-aged",
                        "value":0.125
                    },
                    {
                        "name":"youth",
                        "value":0.5
                    },
                    {
                        "name":"senior",
                        "value":93
                    }
                ]
            }
        ]
    }
}

Такие данные образца могут быть созданы из конструктора "MyData", например

List<MyData> list=new List<MyData>();
list.add(new MyData("Middle-aged","yes",0.417));
list.add(new MyData("youth","yes",0.25));
list.add(new MyData("senior","yes",0.33));
list.add(new MyData("Middle-aged","no",0.125));
list.add(new MyData("youth","no",0.5));
list.add(new MyData("senior","no",93));

Gson g=new Gson();
String output=g.toJson(list);

Таким образом, вы можете иметь более плоскую структуру одного и того же представления данных, что хорошо для всех, кто обрабатывает эти данные.

  • 0
    Пожалуйста, смотрите мое обновление

Ещё вопросы

Сообщество Overcoder
Наверх
Меню