在Android開(kāi)發(fā)中,Gson是一個(gè)非常常用的Json轉(zhuǎn)換庫(kù),可以將Java對(duì)象轉(zhuǎn)換成Json格式并進(jìn)行網(wǎng)絡(luò)傳輸或本地存儲(chǔ),也可以將Json格式的字符串轉(zhuǎn)換成Java對(duì)象。在一些特殊的場(chǎng)景下,我們可能需要生成多層Json數(shù)據(jù),下面將介紹一種方法。
首先,我們需要定義好Json數(shù)據(jù)的結(jié)構(gòu),可以使用類似下面的代碼:
public class MyClass { private String name; private List<MyClass> children; // getters and setters }
上述代碼定義了一個(gè)類,包含了一個(gè)名為“name”的字符串類型成員變量和一個(gè)名為“children”的集合類型成員變量,集合類型成員變量的元素也是本類的對(duì)象。這樣,我們就可以生成一個(gè)層層嵌套的Json數(shù)據(jù)了。例如:
MyClass child1 = new MyClass(); child1.setName("child1"); MyClass child2 = new MyClass(); child2.setName("child2"); MyClass root = new MyClass(); root.setName("root"); List<MyClass> children = new ArrayList<>(); children.add(child1); children.add(child2); root.setChildren(children); Gson gson = new Gson(); String json = gson.toJson(root);
上述代碼就生成了一個(gè)Json字符串,其格式如下:
{ "name": "root", "children": [ { "name": "child1", "children": null }, { "name": "child2", "children": null } ] }
可以看到,我們生成的Json數(shù)據(jù)是一個(gè)層層嵌套的結(jié)構(gòu),非常清晰易讀,可以滿足多種業(yè)務(wù)需求。