使用Gson解析json格式的数据
一、添加依赖:
compile
'com.google.code.gson:gson:2.8.1'
二、Gson的简单使用
1.新建一个实体类(person)
public class Person {
private String
name
;
private int
age
;
private String
sex
;
private String
tel
;
public
Person(String name
, int age
, String sex
, String tel) {
this.
name = name
;
this.
age = age
;
this.
sex = sex
;
this.
tel = tel
;
}
2.添加数据源(person对象)
public class MainActivity
extends AppCompatActivity {
private static final String
TAG =
"MainActivity"
;
private List<Person>
Data
;
private List<Person>
newData
;
@Override
protected void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
;
setContentView(R.layout.
activity_main)
;
Person person1 =
new Person(
"Jim"
,
24
,
"boy"
,
"123456789")
;
Person person2 =
new Person(
"Jane"
,
25
,
"girl"
,
"897654321")
;
Person person3 =
new Person(
"Tom"
,
24
,
"boy"
,
"564789123")
;
Person person4 =
new Person(
"Jack"
,
23
,
"boy"
,
"0123456926")
;
Person person5 =
new Person(
"lucy"
,
27
,
"boy"
,
"98156123156")
;
Data =
new ArrayList<>()
;
Data.add(person1)
;
Data.add(person2)
;
Data.add(person3)
;
Data.add(person4)
;
Data.add(person5)
;
3.Gson的使用
String jsonString = new Gson().toJson(Data); //将存有person对象的list转为json格式的数据
Log.
d(
TAG
,
"onCreate: jsonString = " + jsonString)
;
newData = new Gson().fromJson(jsonString,new TypeToken<List<Person>>(){}.getType() );
//将json格式数据解析为person对象list,打印出log
for (Person person:
newData) {
Log.
d(
TAG
,
"onCreate:
\n
name:" + person.getName() +
"
\n
age:" + person.getAge()
+
"
\n
sex:" + person.getSex() +
"
\n
tel:" + person.getTel())
;
}
}
}
输出结果如下:
MainActivity: onCreate: jsonString = [{"age":24,"name":"Jim","sex":"boy","tel":"123456789"},{"age":25,"name":"Jane","sex":"girl","tel":"897654321"},{"age":24,"name":"Tom","sex":"boy","tel":"564789123"},{"age":23,"name":"Jack","sex":"boy","tel":"0123456926"},{"age":27,"name":"lucy","sex":"boy","tel":"98156123156"}]
Gson().toJson(Data);
Gson().toJson(Data);