如何自定义类的ArrayList转换为JsonArray在Java中? [英] How to convert ArrayList of custom class to JsonArray in Java?

查看:1204
本文介绍了如何自定义类的ArrayList转换为JsonArray在Java中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想自定义类的ArrayList转换为JsonArray。下面是我的code。它执行罚款,但有些JsonArray元素来作为即使他们是在ArrayList中的数字零。我试图把它们打印出来。像customerOne年龄在ArrayList是35,但在JsonArray为0。可能是什么问题?

 的ArrayList<客户> customerList = CustomerDB.selectAll();
    GSON GSON =新GSON();    JsonElement元=
     gson.toJsonTree(customerList,新TypeToken<名单,LT;客户>>(){} .getType());    JsonArray jsonArray = element.getAsJsonArray();


解决方案

试试下面的办法。应工作。

 列表<客户> customerList = CustomerDB.selectAll();GSON GSON =新GSON();
JsonElement元= gson.toJsonTree(customerList,新TypeToken<名单,LT;客户>>(){} .getType());如果(!element.isJsonArray()){
//适当失败
    抛出新SomeException();
}JsonArray jsonArray = element.getAsJsonArray();

主要区别是,我已经改变了的ArrayList 列表

I am trying to convert ArrayList of custom class to JsonArray. Below is my code. It executes fine but some JsonArray elements come as zeros even though they are numbers in the ArrayList. I have tried to print them out. Like customerOne age in the ArrayList is 35 but it is 0 in the JsonArray. What could be wrong?

    ArrayList<Customer> customerList = CustomerDB.selectAll();
    Gson gson = new Gson();

    JsonElement element = 
     gson.toJsonTree(customerList , new TypeToken<List<Customer>>() {}.getType());

    JsonArray jsonArray = element.getAsJsonArray();

解决方案

Try the following approach. should work.

List<Customer> customerList = CustomerDB.selectAll();

Gson gson = new Gson();
JsonElement element = gson.toJsonTree(customerList, new TypeToken<List<Customer>>() {}.getType());

if (! element.isJsonArray()) {
// fail appropriately
    throw new SomeException();
}

JsonArray jsonArray = element.getAsJsonArray();

Main difference is, i have changed ArrayList to List.

这篇关于如何自定义类的ArrayList转换为JsonArray在Java中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆