gpt4 book ai didi

java - gson.fromJson 不加载类

转载 作者:行者123 更新时间:2023-12-01 13:43:58 28 4
gpt4 key购买 nike

我尝试在下一个 json 上应用 gson.fromJson:

{
"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;
}

然后我使用带有 getter 和 setter 的下一个字段创建类 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编写自定义反序列化器。类。

关于java - gson.fromJson 不加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20473068/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com