繁体   English   中英

gson.fromJson不会加载该类

[英]gson.fromJson doesn't load the class

我尝试将gson.fromJson应用于下一个json:

{
    "1a": {"param1": "text",
        "param2": "text1",
        "param3": [0],
        "param4": "text2",
        "param": "text3"},


    "1b": {"param1": "text",
        "param2": "text1",
        "param3": [0],
        "param4": "text2",
        "param5": "text3"},
//and so on 
}

所以我创建下一个类:

public class listItems {

private List<ItemCode> itemList;

public List<ItemCode> getItemList() {
    return itemList;
}

public void setItemList(List<ItemCode> itemList) {
    this.itemList= itemList;
}

然后创建下一个类:

public class ItemCode{

    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public Item getItem() {
        return item;
    }
    public void setItem(Item item) {
        this.item= item;
    }
    private String code;
    private Item item;
}

然后我用getters和setters的下一个字段创建Item类:

private String param1;
private String param2;
private String[] param3;
private String param4;
private String param5;

然后我调用方法gson.fromJson(text, listItems.class)

它返回null。 我的问题在哪里,如何解决?

您可以轻松地将JSON反序列化为Map<String, Item> 请参见以下示例:

Gson gson = new GsonBuilder().create();
Type type = new TypeToken<Map<String, Item>>(){}.getType();
Map<String, Item> result = gson.fromJson(new FileReader(new File("/x/data.json")), type);
System.out.println(result);

反序列化后,您可以将Map上方的内容转换为所需的任何POJO。 如果要隐藏反序列化逻辑,则可以为listItems类编写自定义反序列化器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM