天天看點

開源元件:Gson庫的一般使用方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

<code>//      先導入gson的jar包</code>

<code>//      gson的一般使用方法</code>

<code>//      class的屬性名必須與json字元串中的key大小寫完全一緻</code>

<code>        </code> 

<code>    </code><code>//解析JSONArray</code>

<code>    </code><code>private</code> <code>void</code> <code>parseJSONArray()</code>

<code>    </code><code>{</code>

<code>        </code><code>String jsonArr = </code><code>"[{'key1':'value1', 'key2':'value2'}, {'key1':'value1', 'key2':'value2'}]"</code><code>;</code>

<code>        </code><code>Gson gson = </code><code>new</code> <code>Gson();</code>

<code>        </code><code>java.lang.reflect.Type type = </code><code>new</code> <code>com.google.gson.reflect.TypeToken&lt;List&lt;JsonData&gt;&gt;()</code>

<code>        </code><code>{</code>

<code>        </code><code>}.getType();</code>

<code>        </code><code>List&lt;JsonData&gt; fromJson = gson.fromJson(jsonArr, type);</code>

<code>        </code><code>mTextView.setText(fromJson.toString());</code>

<code>    </code><code>}</code>

<code>    </code><code>//解析JSONObject</code>

<code>    </code><code>private</code> <code>void</code> <code>parseJSONObject()</code>

<code>        </code><code>String jsonObj = </code><code>"{'key1':'value1', 'key2':'value2'}"</code><code>;</code>

<code>        </code><code>JsonData jsonData = gson.fromJson(jsonObj, JsonData.</code><code>class</code><code>);</code>

<code>        </code><code>mTextView.setText(jsonData.toString());</code>

<code>    </code><code>class</code> <code>JsonData</code><code>//屬性必須與json裡面的key一緻</code>

<code>        </code><code>String key1;</code>

<code>        </code><code>String key2;</code>

<code>        </code><code>@Override</code>

<code>        </code><code>public</code> <code>String toString()</code>

<code>            </code><code>return</code> <code>"JSON1 [key1="</code> <code>+ key1 + </code><code>", key2="</code> <code>+ key2 + </code><code>"]"</code><code>;</code>

<code>        </code><code>}</code>

注:

1.參數類型不能是ArrayList,而是List

<code>public</code> <code>class</code> <code>TestJson</code>

<code>{</code>

<code>    </code><code>public</code> <code>int</code> <code>Id;</code>

<code>    </code><code>public</code> <code>String Name;</code>

<code>    </code> 

<code>    </code><code>public</code> <code>ParamJson EstateParam;</code>

<code>    </code><code>public</code> <code>List&lt;String&gt; Banners;</code><code>//此處參數類型不能是ArrayList,而是List </code>

<code>}</code>

<code>public</code> <code>class</code> <code>ParamJson</code>

<code>    </code><code>public</code> <code>List&lt;String&gt; ListData;</code>

解析隻要一句代碼即可:

<code>TestJson mJson = ((TestJson) </code><code>new</code> <code>Gson().fromJson(str, TestJson.</code><code>class</code><code>));</code>

本文轉自 glblong 51CTO部落格,原文連結:http://blog.51cto.com/glblong/1230424,如需轉載請自行聯系原作者

繼續閱讀