解析...android中json格式的数据只有两种,,一种是{}对应的,解析出来是对象;;;一种是[]对应的,这种是数组或者集合
//1.集合或者数据在json原生解析,使用的JSONArray这个类...{}对应的在原声解析里面是JSONObject
//2.使用gson解析数组格式的json字符串
gson解析
Gson gson = new Gson();
Type type = new TypeToken<List<String>>() {}.getType();
List<String> jsonList = gson.fromJson(json,type);
listAll.addAll(listData.get(0).getData());
原生解析
List<String> list = new ArrayList<>();
JSONArray jsonArray = new JSONArray(字符串);
//遍历这个json格式的数组
for (int i=0;i<jsonArray.length();i++){
String string = jsonArray.getString(i);
//添加到集合里面去
list.add(string);
}
接着进行gson解析 list 为gson.fromjson(list,bean类.class)
//GSon解析字符数组
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String json ="[ //数组的每一个值为一个具体的学生对象\n" +
"{\"name\": \"Tom\",\"Grade\":1, \"age\":11, \"gender\": \"M\"}, //学生对象的键为名字,值为对应属性\n" +
"{\"name\": \"Jerry\", \"Grade\":1, \"age\":10, \"gender\": \"M\"} //每个属性对应的是一个key,value对\n" +
"]";
Gson g = new Gson();
Type type = new TypeToken<List<bean>>() {
}.getType();//TYPETOKEN里面是集合 泛型是bean
List<bean> list=g.fromJson(json, type);
Log.i("TAG", "onCreate: "+list.get(0).getName()+" "+list.get(0).getAge());
}
}
//bean
public class bean {
/**
* name : Tom
* Grade : 1
* age : 11
* gender : M
*/
private String name;
private int Grade;
private int age;
private String gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGrade() {
return Grade;
}
public void setGrade(int Grade) {
this.Grade = Grade;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}