gpt4 book ai didi

java - 无法使用 Gson 从 转换为 Result

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:31 24 4
gpt4 key购买 nike

我正在使用 Gson 库将 JSON 对象数组转换为字符串。但我收到此错误 无法从 DataIntent 转换为 Result!!

DataIntent 是 POJO 类的名称。

数据.json

`{
"dataIntents": [
{
"intent": "muster.policy.daily",
"expr": "Am I supposed to register my attendance daily?"
},
{
"intent": "leave.probation",
"expr": "An employee is eligible for how many leaves ??"
}
]
}`

POJO 类:

 public class DataIntent {

private String intent;
private String expr;

//getters and setters

}'

示例类

 public class Example {

private List<DataIntent> dataIntents = null;

public List<DataIntent> getDataIntents() {
return dataIntents;
}

public void setDataIntents(List<DataIntent> dataIntents) {
this.dataIntents = dataIntents;
}

}

主类:

   public class JSONMain {
public static void main(String[] args) {
Gson gson = new Gson();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("data.json"));
org.junit.runner.Result result = (org.junit.runner.Result)
gson.fromJson(br, DataIntent.class);

} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

我不知道我做错了什么?因为我是编程新手。我在 youtube 上的一个视频中看到过这个 (This link)

我遇到问题

org.junit.runner.Result result = (org.junit.runner.Result)gson.fromJson(br, DataIntent.class);

我使用的结果正确吗?或者其他解决方案是什么,以便我可以解析对象的 JSONArray 来获取键:“expr”的值请帮忙!!

最佳答案

gson.fromJson 将 json 字符串反序列化为您作为参数提供的类的对象,在您的情况下为 DataIntent.class 。在您链接的视频中,Result 是他要将 json 字符串反序列化到的类。事实上,该声明是:

Result result = gson.fromJson(br, Result.class)

不需要强制转换,您只需定义要实例化的变量,该变量与您作为参数传递给 fromJson 方法的相同类型的反序列化结果相同:

DataIntent di = gson.fromJson(br, DataIntent.class);
根据您的评论

编辑:您应该反序列化到您的示例类:

Example example = gson.fromJson(br, Example.class);

然后循环遍历Example类的DataIntent列表:

for(DataIntent di : example.getDataIntents())

关于java - 无法使用 Gson 从 <Type> 转换为 Result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44648864/

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