1
我已经找遍了,发现了一些很好的答案,但我无法让它工作。我发现这个线程(Parsing single json entry to multiple objects with Gson),但我不明白我的问题在哪里。 我想将文件读入新的对象(如果有可能只有一个更好,但我不知道如何)。 首先整型线程然后工具的阵列(其中每一个工具是一个对象)使用GSON多个阵列进行JAVA解析
这是我的TXT文件:
{
"threads": 4,
"tools": [
{
"tool": "gs-driver",
"qty": 35
},
{
"tool": "np-hammer",
"qty": 17
},
{
"tool": "rs-pliers",
"qty": 23
}
]
}
这是我的deseralization类,和两个我的对象类
的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;
}
}
我可以得到“线程”,但由于某种原因它不解析数组。
感谢,
十分感谢,错过了。 – Ace66
@ Ace66如果此问题解决了您的问题,您是否愿意提供可接受的标记(至答案的左上角)? :-) –