JSON详解

1.JSON介绍

1.1什么是JSON

JSON是一种轻量级的数据交换格式。

采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言

1.2JSON语法

  • [] 表示数组

  • {} 表示对象

  • "" 表示是属性名或字符串类型的值

  • : 表示属性和值之间的间隔符 键值对

  • , 表示多个属性的间隔符或者是多个元素的间隔符 比如 id 属性 name

<script>
         var user = {    //写一个js对象
            name : "松崎乡",
            age : "20" ,
            sex : "男"
        }
        //这是一个对象,注意键名也是可以使用引号包裹的
         console.log(user) ;//{name: '松崎乡', age: '20', sex: '男'} 
        //--------------------------------
		//开发中使用的json数据
        //data中有三个对象
		var objs = {"code":1,"message":"这是信息","data":[
			{"id":1,"username":"荣耀","password":"22222"},
			{"id":2,"username":"无畏","password":"9966"},
			{"id":3,"username":"吹风","password":"888666"}]};
	    //控制台输出objs中的message
		console.log(objs.message)
        //控制台输出objs中data中下标为零的对象名字
		console.log(objs.data[0].username)
        //获取data中数据,相当于是个集合,因为里面存有三个对象
		var obj = objs.data
        //遍历取出data中对象的信息
		for (var i = 0; i < obj.length; i++) {
			console.log(obj[i].id)
			console.log(obj[i].username)
			console.log(obj[i].password)
			
		}
	</script>

2.JSON解析

解析也就是json字符串转json对象,json对象转json字符串

2.1FastJSON解析

  • Fastjson是一个Java库,可以将Java对象转换为JSON格式,当然它也可以将JSON字符串转换为Java对象。
  • 提供了toJSONString() 和 parseObject() 方法来将Java对象与JSON字符串相互转换:

                1)调用toJSONString方法即可将对象转换成JSON字符串

                2) parseObject 方法则反过来将JSON字符串转换成对象。

public class Demo1 {
    public static void main(String[] args) {
        //将json对象转为json字符串
        //创建对象,并赋值
        Student student = new Student(1, "张三", 35, "男", 189);
        //使用第三方的jar包  将对象转为json字符串
        //导包  使用json的核心类
        String s = JSON.toJSONString(student); //{"age":35,"height":189,"id":1,"name":"张三","sex":"男"}
        System.out.println(s);


        //将json字符串转为对象
        String s1 = "{\"age\":23,\"height\":169,\"id\":2,\"name\":\"李四\",\"sex\":\"女\"}";
        //json字符串中的键一定要和实体类中的属性要对应,否则这个属性赋不上值
        //将s1里面的数据通过反射获取student类对象,然后进行赋值
        Student student1 = JSON.parseObject(s1, Student.class);
        System.out.println(student1);

        //将集合转换成json字符串
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student(1, "麻子", 20, "男", 170));
        students.add(new Student(2, "小明", 22, "男", 180));
        students.add(new Student(3, "小丽", 21, "女", 166));
        //集合是中括号
        String s2 = JSON.toJSONString(students);
        //[{"age":20,"height":170,"id":1,"name":"麻子","sex":"男"},
        // {"age":22,"height":180,"id":2,"name":"小明","sex":"男"},
        // {"age":21,"height":166,"id":3,"name":"小丽","sex":"女"}]
        System.out.println(s2);

        //5.将json字符串,转为集合对象
        List<Student> students1 = JSON.parseArray(s2, Student.class);
        System.out.println(students1);

    }
}

2.2浏览器处理JSON字符串

后端处理完json数据以后依靠ajax发送给前端页面

前端页面要将json字符串转换为json对象

  • JSON.stringify():将json字符串转为对象
  • JSON.parse():将对象转为json字符串

方法:JSON.stringify()

var student = {
            "name":"admin",
            "age":18,
            "sex":"男",
            "height":170
        };
        // 将js 对象转化为 字符串json
       var  str = JSON.stringify(student);
       console.log(str);

2.3浏览器转换为json对象

方法:JSON.parse()

<script>
 //js中没办法处理json字符串。不能将json字符串赋值给标签
 //js中可以将json对象赋值给标签
 //通过ajax拿到的是json字符串,必须要在前端页面中转为json对象之后再赋值给标签
 var str = "{\"age\":22,\"height\":170,\"id\":2,\"name\":\"张三\",\"sex\":\"男\"}";
 //将json字符串转为json对象
 var student = JSON.parse(str)
 console.log(typeof student)
 console.log(student.age)
 console.log(student.name)
 console.log(student.sex)
//将前端字符串转为json对象,数组里放的对象
 var studentList = JSON.parse('[{"name":"李四","age":18,"sex":"女","height":170},{"name":"麻子","age":16,"sex":"女","height":166}]');
 for (var i=0;i<studentList.length;i++){
     // 此时获取数组内的数据,使用[]
     console.log(studentList[i]);
 }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值