gpt4 book ai didi

JAVA解析GSON多数组

转载 作者:行者123 更新时间:2023-11-30 06:58:50 25 4
gpt4 key购买 nike

我已经查看了所有内容,并找到了一些很好的答案来解决我的问题,但我无法让它发挥作用。我找到了这个线程( Parsing single json entry to multiple objects with Gson ),但我不明白我的问题出在哪里。我想将文件读入新的对象(如果可以的话,那就更好了,但我不知道如何)。首先是 int 线程,然后是工具数组(其中每个工具都是一个对象)

这是我的 TXT 文件:

    {
"threads": 4,
"tools": [

{
"tool": "gs-driver",
"qty": 35
},
{
"tool": "np-hammer",
"qty": 17
},
{
"tool": "rs-pliers",
"qty": 23
}
]
}

这是我的反序列化类,以及我的两个对象类

import com.google.gson.*;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.List;

public class Deserializer implements JsonDeserializer<ParseJson> {

public ParseJson deserialize(JsonElement json, Type type,
JsonDeserializationContext context) throws JsonParseException {

JsonObject obj = json.getAsJsonObject();

ParseJson test = new ParseJson();
test.setThreads(obj.get("threads").getAsInt());

Gson toolsGson = new Gson();
Type toolsType = new TypeToken<List<ParseTool>>(){}.getType();
List<ParseTool> toolsList = toolsGson.fromJson(obj.get("tools"), toolsType);
test.setTools(toolsList);
return test;
}
}


import java.util.List;

public class ParseJson {
private int threads;
private List<ParseTool> tools;

public void setThreads(int _threads) {
this.threads = _threads;
}


public int getThreads() {
return threads;
}

public void setTools(List<ParseTool> tools) {
this.tools = tools;
}

public List<ParseTool> getTools() {
return tools;
}
}


public class ParseTool {

private int qty;
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getQty() {
return qty;
}

public void setQty(int qty) {
this.qty = qty;
}
}

我可以获得“线程”,但由于某种原因它无法解析数组。

谢谢

最佳答案

ParseTool 包含名为 name 的属性,但 JSON 表明它名为 tool

因此,您应该将属性 name 重命名为 tool:

public class ParseTool {

private int qty;
private String tool;

public String getTool() {
return tool;
}

public void setTool(String tool) {
this.tool = tool;
}

public int getQty() {
return qty;
}

public void setQty(int qty) {
this.qty = qty;
}
}

关于JAVA解析GSON多数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41312771/

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