1,JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),
–JSON 独立于语言和平台,需要导6个包
2,JSON只有两种结构:对象和数组, 由这两种结构嵌套和组合来表示各式各样的数据。
•数据对象由一系列的属性/值对来表示
•数据对象和属性/值对由逗号分隔
•花括号保存对象
•方括号保存数组
3,JSON 值可以是:
–数字(整数或浮点数)
–字符串(在双引号中)
–逻辑值(true 或 false)
–数组(在方括号中)
–对象(在花括号中)
–null
4,JSON的具体应用
1,复杂对象(字符串,对象,集合) -> JSON对象 -> 字符串
User user1 = new User("10002", "123456", "张三", "女");
User user2 = new User("10003", "123456", "李四", "男");
User user3 = new User("10004", "123456", "王五", "男");
ArrayListfriendList = new ArrayList<>();
friendList.add(user1);
friendList.add(user2);
friendList.add(user3);
Friend friend = new Friend("10001", friendList);
friend.setUser(user1);
JSONObject object = JSONObject.fromObject(friend);
String msg = object.toString();
System.out.println(msg);
2,字符串 -> JSON对象-> 复杂对象(字符串,对象,集合)
JSONObject object2 = JSONObject.fromObject(msg);
(1)获取字符串
String userId = object2.getString("userId");
(2)获取对象
JSONObject object3 = object2.getJSONObject("user");
User user = (User) JSONObject.toBean(object3, User.class);
(3)获取集合
JSONArray array = object2.getJSONArray("friendList");
(a)JSONArray->ArrayList
ArrayListfriendList2 = (ArrayList) JSONArray.toCollection(array, User.class);
for (int i = 0; i < friendList2.size(); i++) {
System.out.println(friendList2.get(i).getUserId());
}
(b)遍历JSONArray,把里面的对象转换成User
for (int i = 0; i < array.size(); i++) {
JSONObject object4 = array.getJSONObject(i);
// 转成User
User user4 = (User) JSONObject.toBean(object4, User.class);
System.out.println(user4.getUserId());
}