jsonarray到arraylist

p8h8hvxi  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(346)

我从服务器“dataarray”获得如下jsonarray:

[{"FirstNmae":"xyz","BranchId":"asd","Location":"qwe"}]

现在我要创造 ArrayList<EmpData> 使用gson列出where EmpData 是普通的pojo类。下面是我的代码,这是得到错误

TypeToken<List<EmpData>> token = new TypeToken<List<EmpData>>() {};
List<EmpData> empList = gson.fromJson(dataArray, token.getType());
fjnneemd

fjnneemd1#

不是答案,但包含为答案以显示格式化代码。
无法繁殖。这是一个最小的,可复制的例子,基于问题中的信息,它运行良好。
为了简单起见,代码使用公共字段。真正的代码可能会使用私有字段和getter/setter方法,但是由于pojo不是问题所在,所以我保持了简单的方式。

Gson gson = new Gson();

// Code from question starts here

String dataArray = "[{\"FirstNmae\":\"xyz\",\"BranchId\":\"asd\",\"Location\":\"qwe\"}]";

TypeToken<List<EmpData>> token = new TypeToken<List<EmpData>>() {};
List<EmpData> empList = gson.fromJson(dataArray, token.getType());

// Code from question ends here

System.out.println("dataArray = " + dataArray);
System.out.println("empList = " + empList);
class EmpData {
    @SerializedName("FirstNmae")
    public String firstName;
    @SerializedName("BranchId")
    public String branchId;
    @SerializedName("Location")
    public String location;
    @Override
    public String toString() {
        return "EmpData[firstName=" + this.firstName +
                     ", branchId=" + this.branchId +
                     ", location=" + this.location + "]";
    }
}

输出

dataArray = [{"FirstNmae":"xyz","BranchId":"asd","Location":"qwe"}]
empList = [EmpData[firstName=xyz, branchId=asd, location=qwe]]

注意 @SerializedName 注解用于处理名称中的打字错误( FirstNmae ),以及名称中第一个字母的大小写问题。

相关问题