|
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
|
// 先导入gson的jar包
// gson的一般使用方法
// class的属性名必须与json字符串中的key大小写完全一致
//解析JSONArray
private
void
parseJSONArray()
{
String jsonArr =
"[{'key1':'value1', 'key2':'value2'}, {'key1':'value1', 'key2':'value2'}]"
;
Gson gson =
new
Gson();
java.lang.reflect.Type type =
new
com.google.gson.reflect.TypeToken<List<JsonData>>()
{
}.getType();
List<JsonData> fromJson = gson.fromJson(jsonArr, type);
mTextView.setText(fromJson.toString());
}
//解析JSONObject
private
void
parseJSONObject()
{
String jsonObj =
"{'key1':'value1', 'key2':'value2'}"
;
Gson gson =
new
Gson();
JsonData jsonData = gson.fromJson(jsonObj, JsonData.
class
);
mTextView.setText(jsonData.toString());
}
class
JsonData
//属性必须与json里面的key一致
{
String key1;
String key2;
@Override
public
String toString()
{
return
"JSON1 [key1="
+ key1 +
", key2="
+ key2 +
"]"
;
}
}
|
注:
1.参数类型不能是ArrayList,而是List
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public
class
TestJson
{
public
int
Id;
public
String Name;
public
ParamJson EstateParam;
public
List<String> Banners;
//此处参数类型不能是ArrayList,而是List
}
public
class
ParamJson
{
public
int
Id;
public
String Name;
public
List<String> ListData;
}
|
解析只要一句代码即可:
|
1
|
TestJson mJson = ((TestJson)
new
Gson().fromJson(str, TestJson.
class
));
|
本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1230424,如需转载请自行联系原作者