Преобразование данных JSON к объекту Java

Мне нравится статический импорт методов.

, Например, создают следующий util класс:

package package.name;

public class util {

     private static void doStuff1(){
        //the end
     }

     private static String doStuff2(){
        return "the end";
     }

}

Затем использование это как это.

import static package.name.util.*;

public class main{

     public static void main(String[] args){
          doStuff1(); // wee no more typing util.doStuff1()
          System.out.print(doStuff2()); // or util.doStuff2()
     }

}

Статический Импорт работы с любым классом, даже Математика...

import static java.lang.Math.*;
import static java.lang.System.out;
public class HelloWorld {
    public static void main(String[] args) {
        out.println("Hello World!");
        out.println("Considering a circle with a diameter of 5 cm, it has:");
        out.println("A circumference of " + (PI * 5) + "cm");
        out.println("And an area of " + (PI * pow(5,2)) + "sq. cm");
    }
}

249
задан nabster 3 February 2018 в 23:00
поделиться

2 ответа

Я рассматривал Gson от Google как потенциальный плагин JSON. Может ли кто-нибудь дать какое-либо руководство относительно того, как я могу сгенерировать Java из этой строки JSON?

Google Gson поддерживает универсальные и вложенные компоненты. [] в JSON представляет собой массив и должен отображаться в коллекции Java, такой как List , или просто в простой массив Java. {} в JSON представляет собой объект и должен отображаться в Java Map или просто в какой-то класс JavaBean.

У вас есть объект JSON с несколькими свойствами, из которых Свойство groups представляет собой массив вложенных объектов одного и того же типа. Это можно проанализировать с помощью Gson следующим образом:

package com.stackoverflow.q1688099;

import java.util.List;
import com.google.gson.Gson;

public class Test {

    public static void main(String... args) throws Exception {
        String json = 
            "{"
                + "'title': 'Computing and Information systems',"
                + "'id' : 1,"
                + "'children' : 'true',"
                + "'groups' : [{"
                    + "'title' : 'Level one CIS',"
                    + "'id' : 2,"
                    + "'children' : 'true',"
                    + "'groups' : [{"
                        + "'title' : 'Intro To Computing and Internet',"
                        + "'id' : 3,"
                        + "'children': 'false',"
                        + "'groups':[]"
                    + "}]" 
                + "}]"
            + "}";

        // Now do the magic.
        Data data = new Gson().fromJson(json, Data.class);

        // Show it.
        System.out.println(data);
    }

}

class Data {
    private String title;
    private Long id;
    private Boolean children;
    private List<Data> groups;

    public String getTitle() { return title; }
    public Long getId() { return id; }
    public Boolean getChildren() { return children; }
    public List<Data> getGroups() { return groups; }

    public void setTitle(String title) { this.title = title; }
    public void setId(Long id) { this.id = id; }
    public void setChildren(Boolean children) { this.children = children; }
    public void setGroups(List<Data> groups) { this.groups = groups; }

    public String toString() {
        return String.format("title:%s,id:%d,children:%s,groups:%s", title, id, children, groups);
    }
}

Довольно просто, не правда ли? Просто имейте подходящий JavaBean и вызовите Gson # fromJson () .

См. Также:

319
ответ дан 23 November 2019 в 02:59
поделиться

Если вы используете какие-либо специальные карты с ключами или значениями, а также специальные карты, вы обнаружите, что это не предусмотрено реализацией Google.

3
ответ дан 23 November 2019 в 02:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: