gpt4 book ai didi

Java gson 通用数组/列表反序列化

转载 作者:行者123 更新时间:2023-12-01 19:07:09 24 4
gpt4 key购买 nike

我正在尝试使用 Gson 反序列化通用列表。我能够反序列化以下 JSON:

[{"updated_at":"2012-03-09T11:13:31Z","id":1,"title":"Moda","position":0,"short_name":"Md"},
{"updated_at":"2012-03-09T11:13:40Z","id":2,"title":"Sissi","position":1,"short_name":"SI"},
{"updated_at":"2012-03-09T11:13:47Z","id":3,"title":"Levis","position":2,"short_name":"LV"},
{"updated_at":"2012-03-09T11:14:03Z","id":4,"title":"Dolce&Gabanna","position":3,"short_name":"DG"}]

使用以下代码:

T[] array = (T[])java.lang.reflect.Array.newInstance(p_class, 0);
gson.fromJson(content, array.getClass());

但是现在,我有以下 JSON,我无法弄清楚如何使用 gson 反序列化:

[{"brand":{"updated_at":"2012-03-09T11:13:31Z","id":1,"title":"Moda","position":0,"short_name":"Md"}},
{"brand":{"updated_at":"2012-03-09T11:13:40Z","id":2,"title":"Sissi","position":1,"short_name":"SI"}},
{"brand":{"updated_at":"2012-03-09T11:13:47Z","id":3,"title":"Levis","position":2,"short_name":"LV"}},
{"brand":{"updated_at":"2012-03-09T11:14:03Z","id":4,"title":"Dolce&Gabanna","position":3,"short_name":"DG"}}]

感谢您的帮助!

最佳答案

您需要创建一个新类,它有一个名为brand的对象,并且是p_class类型。然后像以前一样在新类上使用 gson ,它应该返回新类的数组。例如:

class Brand{
private p_class brand;

public p_class getBrand(){
return brand;
}
}

对于 gson:

List<Brand> brands = (List<Brand>) gson.fromJson(content, new TypeToken<List<Brand>>(){}.getType());
<小时/>

另一种方法是使用 android 框架中可用的普通 json 对象:

    JSONArray ar = new JSONArray(content);
for(int i=0; i<ar.length(); i++){
JSONObject obj = ar.getJSONObject(i);

//here is your desired object
p_class p = gson.fromJson(obj.getJSONObject("brand").toString(), p_class.class);
}

关于Java gson 通用数组/列表反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9635133/

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