如何使用Gson的fromJson方法将JSON转换为Java类?

2ul0zpep  于 2023-06-04  发布在  Java
关注(0)|答案(2)|浏览(190)

我有一条JSON格式的消息,我想使用Gson库的“fromJson”方法将其转换为Java对象。
我该怎么做?
我有这样格式的JSON消息:

{
   "desc":[
      {
         "name":"id",
         "desc":{
            "ip_arduino":"value",
            "id_house":"value",
            "house_address":"value"
         }
      },
      {
         "name":"P1",
         "desc":{
            "field":"panel1",
            "value":0
         }
      },
      {
         "name":"P2",
         "desc":{
            "field":"panel3",
            "value":0
         }
      },
      {
         "name":"P3",
         "desc":{
            "field":"panel3",
            "value":0
         }
      },
      {
         "name":"P4",
         "desc":{
            "field":"panel4",
            "value":0
         }
      }
   ]
}

我试过这个,但它不起作用。我打印了一些值,但它是null:
jsonDesc.java 文件

public class jsonDesc {

    private ArrayList<Desc> desc = new ArrayList();
    
}

和Desc.java文件

public class Desc {
    String name;
    desc desc;

    desc1 desc1;

    public class desc{
       String ip_arduino;
       String id_house;
       String house_address;
    }

    public class desc1{
        String name;
        desc desc;
        public class desc{
            String field;
            String value;
        }
    }

}
lyr7nygr

lyr7nygr1#

如果你已经在一个对象中有了这个,那么它就像这样简单

Desc desc = new Gson().fromJson(jsonString, Desc.class);

同样对于创建类模型,不要浪费时间创建自己的类模型。就用这个:https://www.jsonschema2pojo.org/
节省头痛和时间

0s7z1bwu

0s7z1bwu2#

假设你想从一个文件中读取JSON并将其解析为一个Desc对象:

Gson gson = new Gson();
Reader reader = Files.newBufferedReader(Paths.get("desc.json"));
Desc desc= gson.fromJson(reader,Desc.class);
reader.close();

相关问题