JSON

什么是JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对JSON的支持(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这使得JSON成为理想的数据交换格式。
其中轻量级指的是跟xml作比较,数据交换指的是客户端和服务端之间业务数据的传递格式。

 

JSON在JavaScript中使用

json的定义(json就是一个对象) 

//json的定义
var jsonObj = {
	"key1": 12,
	"key2": "abc",
	"key3": true,
	"key4": [15, "arr", false],
	"key5": {
		"key5_1": 500,
		"key5_2": "object"
		"key5_3": true
	},
	"key6": [
		{
			"key6_1_1": 400,
			"key6_1_2": "abc",
		},
		{
			"key6_2_1": false,
			"key6_2_2": 30
		}
	]
};

  

json的访问

//json的访问
alert(jsonObj.key1);     //12
alert(json.key4);        //得到数组 [15,"arr",false] 
for(var i=0; i<jsonObj.key4.length; i++) {      //json数组的遍历
	alert(jsonObj.key4[i];
}
alert(jsonObj.key5.key5_1);     //500
alert(jsonObj.key6[0].key6_1_1);    //400

  

json的有两种存在形式

  • 对象形式的存在,即json对象
  • 字符串形式的存在,即json字符串

当需要操作json中数据的时候,使用json对象
当需要在客户端和服务器之间进行数据交换的时候,使用json字符串

JSON.stringify() 把json对象转换成为json字符串
JSON.parse() 把json字符串转换成为json对象

 

JSON在Java中使用

引入依赖

 

 

 

JavaBean和JSON的互转

package com.tang.web.servlet.bean;

public class User {
    private String username;
    private String password;
    private String gender;
    private Integer age;

    public User() {
    }

    public User(String username, String password, String gender, Integer age) {
        this.username = username;
        this.password = password;
        this.gender = gender;
        this.age = age;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

  

        User user = new User("zhangsan","123456","男", 18);
        Gson gson = new Gson();
        String json = gson.toJson(user);
        //toJson 方法可以把JavaBean对象转换为json字符串
        System.out.println(json);
        //fromJson 方法可以把json字符串转化为JavaBean对象
        User myuser = gson.fromJson(json, User.class);

  

输出:{"username":"zhangsan","password":"123456","gender":"男","age":18}

 

List和JSON的互转

        List<User> users = new ArrayList<>();
        users.add(new User("张三", "123", "男", 25));
        users.add(new User("李四", "456", "女", 30));
        users.add(new User("王五", "789", "女", 16));
        Gson gson = new Gson();
        //把List<User>对象转换为json字符串
        String json = gson.toJson(users);
        System.out.println(json);
        //把json字符串转化为List<User>对象
        List<User> userList = gson.fromJson(json, new TypeToken<ArrayList<User>>(){}.getType());
        System.out.println(userList);

  

Map和JSON的互转

        Map<String, User> map = new HashMap<>();
        map.put("zhangsan", new User("张三", "123", "男", 25));
        map.put("lisi", new User("李四", "456", "女", 30));
        map.put("wangwu", new User("王五", "789", "女", 16));
        Gson gson = new Gson();
        //把Map<String, User>对象转换为json字符串
        String json = gson.toJson(map);
        System.out.println(json);
        //把json字符串转化为Map<String, User>对象
        Map<String, User> userMap = gson.fromJson(json, new TypeToken<Map<String, User>>(){}.getType());
        System.out.println(userMap);

  

 

posted @ 2021-04-10 15:49  455994206  阅读(64)  评论(0)    收藏  举报