Sea*_*ilb 23 java arrays arraylist gson
我试图将自定义类的ArrayList转换为JsonArray.以下是我的代码.它执行正常,但一些JsonArray元素为零,即使它们是ArrayList中的数字.我试图将它们打印出来.就像ArrayList中的customerOne年龄是35但在JsonArray中它是0.可能有什么不对?
ArrayList<Customer> customerList = CustomerDB.selectAll();
Gson gson = new Gson();
JsonElement element =
gson.toJsonTree(customerList , new TypeToken<List<Customer>>() {}.getType());
JsonArray jsonArray = element.getAsJsonArray();
Run Code Online (Sandbox Code Playgroud)
Ahs*_*hah 33
尝试以下方法.应该管用.
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();
Run Code Online (Sandbox Code Playgroud)
主要的区别是,我改变ArrayList了List.
Fad*_*ils 12
作为一个额外的答案,它也可以缩短.
List<Customer> customerList = CustomerDB.selectAll();
JsonArray result = (JsonArray) new Gson().toJsonTree(customerList,
new TypeToken<List<Customer>>() {
}.getType());
Run Code Online (Sandbox Code Playgroud)
不知道这个解决方案与其他答案相比表现如何,但这是另一种方法,它非常干净,对于大多数情况应该足够了。
ArrayList<Customer> customerList = CustomerDB.selectAll();
Gson gson = new Gson();
String data = gson.toJson(customerList);
JsonArray jsonArray = new JsonParser().parse(data).getAsJsonArray();
Run Code Online (Sandbox Code Playgroud)
很想听听其他人的意见,如果这实际上是低效的,然后又是如何低效的。
| 归档时间: |
|
| 查看次数: |
37890 次 |
| 最近记录: |