使用gson将JSON转换为java对象以用于多个记录 我有我的json文件和相应的javabean类。 JSON文件有多条记录,所以我有一个对象列表,我面临的问题是。列表没有被填充。 JSON文件: {“请求服务”: {`在这里输入代码` “请求服务”: [ { “订单号”:456, “组织ID”:123, “头像”:3446 } ] } } JAVA类: 公共类请求服务{ private List requestServices=new ArrayList();//对象数组 //默认getter,列表的setter } ----- 公共类请求服务{ 私有字符串orderNumber; 私有字符串organizationId; 私有字符串头ID; /*setter和getter*/} ----- 主类 公共类JSONBind{ 公共静态void main(字符串[]args){ Gson Gson=新的Gson(); 试一试{ BufferedReader br=新的BufferedReader(新文件读取器(“c:\\JSON1.json”); //将json字符串转换回对象 RequestServices obj=gson.fromJson(br,RequestServices.class);

使用gson将JSON转换为java对象以用于多个记录 我有我的json文件和相应的javabean类。 JSON文件有多条记录,所以我有一个对象列表,我面临的问题是。列表没有被填充。 JSON文件: {“请求服务”: {`在这里输入代码` “请求服务”: [ { “订单号”:456, “组织ID”:123, “头像”:3446 } ] } } JAVA类: 公共类请求服务{ private List requestServices=new ArrayList();//对象数组 //默认getter,列表的setter } ----- 公共类请求服务{ 私有字符串orderNumber; 私有字符串organizationId; 私有字符串头ID; /*setter和getter*/} ----- 主类 公共类JSONBind{ 公共静态void main(字符串[]args){ Gson Gson=新的Gson(); 试一试{ BufferedReader br=新的BufferedReader(新文件读取器(“c:\\JSON1.json”); //将json字符串转换回对象 RequestServices obj=gson.fromJson(br,RequestServices.class);,java,json,Java,Json,System.out.println(obj.getRequestServices().get(0.getOrderNumber());//获取错误 }}} 当我尝试打印对象列表(i.eREquestService)时,它会给出IndexOutofBound 提前感谢,等待您的帮助 我注意到您的json中有以下层次结构 I have my json file and corresponding java bean classes. JSON file has multiple records,S

System.out.println(obj.getRequestServices().get(0.getOrderNumber());//获取错误 }}} 当我尝试打印对象列表(i.eREquestService)时,它会给出IndexOutofBound
提前感谢,等待您的帮助

我注意到您的json中有以下层次结构

I have my json file and corresponding java bean classes.
JSON file has multiple records,So i have LIST of objects,where i am facing the problem.LIST is not being populated. 
JSON file:
{"RequestServices":
{`enter code here`
"RequestService":
[
{
"orderNumber":456,
"organizationId":123,
"headerId":3446
}
]
}
}
JAVA CLASSES:
public class RequestServices {
    private List<RequestService> requestServices=new ArrayList<RequestService>();//array of objects     
//default getter,setter of List<RequestService>
}
-----
public class RequestService {   
    private String orderNumber;
    private String organizationId;
    private String headerId;
    /* setters and getters */}
-----
Main.class
public class JSONBind {
    public static void main(String[] args) {
    Gson gson = new Gson();
    try {
        BufferedReader br = new BufferedReader(new fileReader("c:\\JSON1.json"));
        //convert the json string back to object
        RequestServices obj = gson.fromJson(br, RequestServices.class);
但是在您的pojo中,您有
RequestServices->RequestServices
尝试重命名您的pojo或json,以便将属性与
RequestServices

或者,您可以使用注释
@SerializedName(“requestServices”)

有关完整文档,请访问以下网站:


希望有帮助

非常感谢,我将变量名完全更改为json文件,现在工作正常,但是有一个mre问题,我们可以将json值映射到GSON中的java对象变量名吗?很高兴帮助您!因为它解决了问题,你能接受这个答案吗?关于你的问题,我不明白,你能解释一下吗?例如:JSON的属性名是“OrderNumber”,但在我的POJO类中,我的属性名是“salesNumber”,而不是OrderNumber。现在,我们如何将OrderNumber从JSON映射到POJO类的salesNumber?例如:JSON的属性名称是“OrderNumber”,但在我的POJO类中,我将“salesNumber”作为属性名称,而不是OrderNumber。现在我们如何将OrderNumber从JSON映射到POJO类的salesNumber?
RequestServices -> RequestService[]