json和xml都是跨平台的解析语言,但是json相对于xml虽然可读性要差点但是其解析方式相对简单,有效数据多的特点广泛运用于安卓网络响应格式,而且安卓内部集成了json不需要再导入jar包,
1.json格式
1.1{“fistname”{“fistname”:"Brett",“Lastname”:"li"} 这是一个jsonObject,即整个{},其中包含的数据是以 键:值的方式存储的,目的是方便根据键获取值,jsonObject是json解析的单位
1.2{"people":[{“fistname”:"Brett",“Lastname”:"li"},{“fistname”:"Kanra",“Lastname”:"niu"}]}
外层是jsonObject其键是people,值是一个jsonArray,而jasonArray里面的数据就是jsonObject,解析jsonArry就是获取内部的jsonObject
2.java转化为json
2.1 java对象转化为jsonObject
jsonArray ja = jsonArray.from)(list);
jsonObject j = new jsonObject();
j.put("student",ja);
3.jsonObject转换为java对象
3.1 获取解析的json字符串s,处理("要转义) ""内放json的字符串,然后将"改为\"
3.2 获得jsonObject
JSONObject j = JSONObject.fromObject(s);
Student student = new Student();
4.jsonArray转化为list
4.1 获取解析的json字符串s,处理("要转义) ""内放json的字符串,然后将"改为\"
4.2 获得jsonObject
JSONObject j = JSONObject.fromObject(s);
4.3 获取jsonArray
jsonArray ja = j.getJSONArray("Student");
4.4 遍历和封装list
List<Student> list = new arraList<>();
for(int i = 0;i<ja.size();i++){
4.5获取jsonObject
JSONObject jo = ja.getJSONO
Student s = new Student();
s.setName(jo.getString("name"));
list.add(s);
}
1.json格式
1.1{“fistname”{“fistname”:"Brett",“Lastname”:"li"} 这是一个jsonObject,即整个{},其中包含的数据是以 键:值的方式存储的,目的是方便根据键获取值,jsonObject是json解析的单位
1.2{"people":[{“fistname”:"Brett",“Lastname”:"li"},{“fistname”:"Kanra",“Lastname”:"niu"}]}
外层是jsonObject其键是people,值是一个jsonArray,而jasonArray里面的数据就是jsonObject,解析jsonArry就是获取内部的jsonObject
2.java转化为json
2.1 java对象转化为jsonObject
JSONObject jo = jsonObject.from(对象);
jsonArray ja = jsonArray.from)(list);
jsonObject j = new jsonObject();
j.put("student",ja);
public class JSONTEST {
public static void main(String[] args) {
Student s = new Student("1", "zhang", 99, "北京", 12, "beijing");
//java对象转换为json对象
JSONObject j = JSONObject.fromObject(s);
System.out.println(j.toString());
System.out.println("------------------------------");
List<Student> list = new ArrayList<>();
list.add(new Student("2", "wang", 99, "北京", 12, "beijing"));
list.add(new Student("3", "zou", 99, "北京", 12, "11"));
list.add(new Student("4", "ma", 99, "wef", 12, "beijing"));
list.add(new Student("5", "xiao", 99, "北京", 12, "666"));
list.add(new Student("6", "li", 99, "taiwan", 12, "beijing"));
list.add(new Student("7", "jia", 99, "china", 12, "7777"));
JSONArray arry = JSONArray.fromObject(list);
System.out.println(arry.toString());
System.out.println("------------------------------");
JSONObject j2 = new JSONObject();
j2.put("student", arry);
System.out.println(j2.toString());
}
}
输出为
{"address":"北京","age":12,"id":"1","name":"zhang","provice":"beijing","score":99}
------------------------------
[{"address":"北京","age":12,"id":"2","name":"wang","provice":"beijing","score":99},{"address":"北京","age":12,"id":"3","name":"zou","provice":"11","score":99},{"address":"wef","age":12,"id":"4","name":"ma","provice":"beijing","score":99},{"address":"北京","age":12,"id":"5","name":"xiao","provice":"666","score":99},{"address":"taiwan","age":12,"id":"6","name":"li","provice":"beijing","score":99},{"address":"china","age":12,"id":"7","name":"jia","provice":"7777","score":99}]
------------------------------
{"student":[{"address":"北京","age":12,"id":"2","name":"wang","provice":"beijing","score":99},{"address":"北京","age":12,"id":"3","name":"zou","provice":"11","score":99},{"address":"wef","age":12,"id":"4","name":"ma","provice":"beijing","score":99},{"address":"北京","age":12,"id":"5","name":"xiao","provice":"666","score":99},{"address":"taiwan","age":12,"id":"6","name":"li","provice":"beijing","score":99},{"address":"china","age":12,"id":"7","name":"jia","provice":"7777","score":99}]}
3.jsonObject转换为java对象
3.1 获取解析的json字符串s,处理("要转义) ""内放json的字符串,然后将"改为\"
3.2 获得jsonObject
JSONObject j = JSONObject.fromObject(s);
Student student = new Student();
s.setName(j.getString("name"));
public class JsonTest2 {
public static void main(String[] args) {
String s ="{\"address\":\"北京\",\"age\":12,\"id\":\"1\",\"name\":\"zhang\",\"provice\":\"beijing\",\"score\":99}";
Student student= new Student();
JSONObject j=JSONObject.fromObject(s);
student.setAddress(j.getString("address"));
student.setAge((j.getInt("age")));
student.setId(j.getString("id"));
student.setScore(j.getInt("score"));
student.setName(j.getString("name"));
student.setProvice(j.getString("provice"));
System.out.println(student.toString());
}
}
4.jsonArray转化为list
4.1 获取解析的json字符串s,处理("要转义) ""内放json的字符串,然后将"改为\"
4.2 获得jsonObject
JSONObject j = JSONObject.fromObject(s);
4.3 获取jsonArray
jsonArray ja = j.getJSONArray("Student");
4.4 遍历和封装list
List<Student> list = new arraList<>();
for(int i = 0;i<ja.size();i++){
4.5获取jsonObject
JSONObject jo = ja.getJSONO
Student s = new Student();
s.setName(jo.getString("name"));
list.add(s);
}
public class JsonTest3 {
public static void main(String[] args) {
String js = "{\"student\":[{\"address\":\"北京\",\"age\":12,\"id\":\"2\",\"name\":\"wang\",\"provice\":\"beijing\",\"score\":99},{\"address\":\"北京\",\"age\":12,\"id\":\"3\",\"name\":\"zou\",\"provice\":\"11\",\"score\":99},{\"address\":\"wef\",\"age\":12,\"id\":\"4\",\"name\":\"ma\",\"provice\":\"beijing\",\"score\":99},{\"address\":\"北京\",\"age\":12,\"id\":\"5\",\"name\":\"xiao\",\"provice\":\"666\",\"score\":99},{\"address\":\"taiwan\",\"age\":12,\"id\":\"6\",\"name\":\"li\",\"provice\":\"beijing\",\"score\":99},{\"address\":\"china\",\"age\":12,\"id\":\"7\",\"name\":\"jia\",\"provice\":\"7777\",\"score\":99}]}";
JSONObject jo = JSONObject.fromObject(js);
//!
JSONArray ja = jo.getJSONArray("student");
List<Student> list = new ArrayList<>();
for (int i = 0; i < ja.size(); i++) {
//!
JSONObject j = ja.getJSONObject(i);
Student student= new Student();
student.setAddress(j.getString("address"));
student.setAge((j.getInt("age")));
student.setId(j.getString("id"));
student.setScore(j.getInt("score"));
student.setName(j.getString("name"));
student.setProvice(j.getString("provice"));
list.add(student);
}
System.out.println(list.toString());
}
}
public class Student {
private String id;
private String name;
private int score;
private String address;
private int age;
private String provice;
public Student(String id, String name, int score, String address, int age, String provice) {
super();
this.id = id;
this.name = name;
this.score = score;
this.address = address;
this.age = age;
this.provice = provice;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", score=" + score + ", address=" + address + ", age=" + age
+ ", provice=" + provice + "]";
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getProvice() {
return provice;
}
public void setProvice(String provice) {
this.provice = provice;
}
}