gpt4 book ai didi

java - Gson json无法获取结果

转载 作者:行者123 更新时间:2023-11-30 04:26:42 25 4
gpt4 key购买 nike

请给我一个像这样的 json 响应字符串:

{"result":{"id":21456,"name":"3mm nail","type":"2" }}

这是我的代码:

class rootObj{
List<Result> result;

}
public class Result {
@SerializedName("id")
public String idItem;

@SerializedName("name")
public String name;
}
public static void main(String[] args) throws Exception {
Gson gson = new Gson();
Result result = gson.fromJson(json,Result.class);
System.out.println(result.name);
}

但结果为空:(提前谢谢。

所以..这段代码就是我的目标:

class ResultData{

private Result result;
public class Result {
private String id;
private String name;

}

}


...
Gson gson = new Gson();
ResultData resultData = new Gson().fromJson(json, ResultData.class);

System.out.println(resultData.result.id);
System.out.println(resultData.result.name);

感谢 BalusC 给了我这个想法。 Java - Gson parsing nested within nested

最佳答案

在 JSON 字符串中,结果属性是对象而不是数组。因此,要使其与您的两个 Java 类(rootObj 和 Result)一起使用,您需要在 {braces} 周围添加 [brackets]原创

{"result":{"id":21456,"name":"3mm nail","type":"2" }}

{"result":[{"id":21456,"name":"3mm nail","type":"2" }]}

这段代码对我有用:

import static org.junit.Assert.assertEquals;

import java.util.List;

import org.junit.Test;

import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;

public class TestGson {
private static final String NAME = "3mm nail";

@Test
public void testList() {
final String json = "{\"result\":[{\"id\":21456,\"name\":\"" + NAME + "\",\"type\":\"2\" }]}";
Gson gson = new Gson();
ListWrapper wrapper = gson.fromJson(json, ListWrapper.class);
assertEquals(NAME, wrapper.result.get(0).name);
}

static class ListWrapper {
List<Result> result;
}

static class ObjectWrapper {
Result result;
}

static class Result {
@SerializedName("id")
public int idItem;

@SerializedName("name")
public String name;
}

}

关于java - Gson json无法获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15702834/

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