我有这种来自api的json:
[
{
"id": "12",
"name": "elo2",
"status": "ok",
"vulumes": [
{
"id": 17592,
"name": "vol1",
"status": "ok"
}
]
},
{
"id": "13",
"name": "elo",
"status": "ok",
"vulumes": [
{
"id": "17596",
"name": "vol2",
"status": "ok"
}
]
}
]
ID 12和13它的架子,体积是货架的一部分,ID为17592和17596
我无法用json解析它,我试图使用gson或json,但我无法理解如何获取sime块,例如id为12的块,用于解析此架子上的货架和现有卷的信息。
你能帮帮我吗?在其他api中,我可以看到命名对象vith k / v,但没有任何内容。答案 0 :(得分:1)
有了Gson,您可以采取一种简单的方法。这演示了一个与JSON示例匹配的Java数据结构,以及如何使用Gson对其进行反序列化和序列化。
public class Foo
{
public static void main(String[] args) throws Exception
{
Gson gson = new Gson();
Type thingsType = new TypeToken<List<Thing>>() {}.getType();
List<Thing> things = gson.fromJson(new FileReader("input.json"), thingsType);
System.out.println(gson.toJson(things));
}
}
class Thing
{
String id;
String name;
String status;
List<Vulume> vulumes;
}
class Vulume
{
String id;
String name;
String status;
}
由于两种对象类型的属性几乎相同,因此可能的意图是只有一种对象类型,并引用了相同类型的对象集合。这就是看起来的样子。
public class Foo
{
public static void main(String[] args) throws Exception
{
Gson gson = new Gson();
Type thingsType = new TypeToken<List<Vulume>>() {}.getType();
List<Vulume> things = gson.fromJson(new FileReader("input.json"), thingsType);
System.out.println(gson.toJson(things));
}
}
class Vulume
{
String id;
String name;
String status;
List<Vulume> vulumes;
}