我像这样接收JSON
[
{
"albums" : [
{"id":"0", "name":"name"},
{"id":"1", "name":"name"}
],
"name":"name"
},
{
"tracks" : [
{"id":"0", "name":"name", "duration":"3:30"},
{"id":"1", "name":"name", "duration":"2:40"}
],
"name":"name"
},
{
"playlists" : [
{"id":"0", "name":"name", "tracksCount":"3"},
{"id":"1", "name":"name", "tracksCount":"40"}
],
"name":"name"
}
]
当然,我实现了包含所有字段和类的类Track、Album和Playlist
Tracks {
String name;
List<Track> tracks;
}
Albums {
String name;
List<Album> albums;
}
Playlists {
String name;
List<Playlist> playlists;
}
Gson gson = new Gson();
JsonResponse[] rez = gson.fromJson(str, JsonResponse[].class);
class JsonResponse {
Albums albums;
Tracks tracks;
Playlists playlists;
}
[
{
"albums" : [
{"id":"0", "name":"name"},
{"id":"1", "name":"name"}
],
"name":"name"
}
]
顺便说一句,我不能改变JSON。所以我需要一个代码来解析它。
最近我使用了RuntimeTypeAdapterFactory来实现同样的目的,它是一个简单的干净的解决方案。它是一个开放的Gson集成(额外)
请查看本文中的active example https://jansipke.nl/serialize-and-deserialize-a-list-of-polymorphic-objects-with-gson/I将原始代码从github直接导入到我的项目中(因为类不直接拥有maven依赖项):
代码https://raw.githubusercontent.com/google/gson/master/extras/src/main/java/com/google/gson/typeAdapters/runtimetypeAdapterFactory.java
希望有所帮助
当我试图使用Gson库反序列化JSON对象数组时,我遇到了一个问题。 JSON数组的一个示例: 你怎么认为?反序列化这种JSON响应的正确Java代码是什么?
问题内容: 我在尝试使用Gson库反序列化对象的JSON数组时遇到问题。 JSON数组的示例: 你怎么看?反序列化此类JSON响应的正确Java代码是什么? 问题答案: 要反序列化JSONArray,您需要使用TypeToken。您可以从GSON用户指南中了解更多信息。示例代码: 如果您有JSONArray,则可以使用
问题内容: 确定,所以我编辑了问题,因为它不够清楚。 编辑2 :更新了JSON文件。 我在Android应用程序中使用GSON,我需要解析来自服务器的JSON文件,这些文件有点太复杂了。我不想让我的对象结构太沉重,所以我想简化内容: 所以我的对象的结构将不是JSON文件的结构。 例如,如果在JSON中,我有以下内容: 我不想保留我当前的对象结构,即一个对象,其中包含一个和一个“总计”。但是我只想将
主要内容:示例我们将一个Java对象序列化为一个Json文件,然后读取该Json文件以获取对象。 在这个例子中,创建一个类。 然后将对象列化后存储在文件中,该文件将具有对象的json表示形式。 示例 在中创建一个名为的Java类文件,参考以下代码 - 执行上面示例代码,得到以下结果 -
打完电话后 我只填充了的和。列表始终保持。我怎么才能修好这个?