• 技术文章 >web前端 >js教程

    示例解析Json对象Json字符串的序列化与反序列化

    长期闲置长期闲置2022-08-08 15:40:34转载88
    本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于Json对象的相关问题,JavaScript Object Notation用于存储和交换文本信息的语法,进行数据的传输,JSON比 XML 更小、更快,更易解析,下面一起来看一下,希望对大家有帮助。

    【相关推荐:javascript视频教程web前端

    Json

    JavaScript Object Notation -JavaScript
    用于存储和交换文本信息的语法,进行数据的传输,JSON比 XML 更小、更快,更易解析。

    var person = {"name": "张三", age: 23, 'gender': true};var ps = [{"name": "张三", "age": 23, "gender": true},
              {"name": "李四", "age": 24, "gender": true},
              {"name": "王五", "age": 25, "gender": false}];

    Json字符串

    var b='{"name":"2323","sex":"afasdf","age":"6262"}';//json字符串
     console.log(b);//{"name":"2323","sex":"afasdf","age":"6262"}
      alert(typeof(b));//string

    序列化

    将数据结构或是对象 转换为 二进制串(字节序列)的过程 用来数据的传输 (把数据装换成json字符串 后端配合@reponseBody来进行数据的接受和传递)

    后端是Java对象,想用JSON的格式将数据传输,就要进行序列化操作。
    Java对象序列化了才可以在网络上传输,或者保存到硬盘上。
    序列化完就变成了json字符串了 通过jackson这个序列化框架序列化

    在后端通过在controller上面加@reponseBody注解 将从service层获取到的java对象转化为json格式对象,传输到前端
    在controller的请求参数前加@reponseBody 就可以将前端传过来的json格式的数据接收

    前端的序列化和反序列化

    后端的序列化和反序列化

    后端序列化和反序列化的方法一

    这个ObjectMapper对象是jackson包下面的,这是他的依赖

           <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.8.3</version>
            </dependency>
    //类属性,
    
    private static final ObjectMapper MAPPER = new ObjectMapper();
    
    //序列化-----userMapList是List<user>的格式,现在我们需要将List集合序列化为json字符串
    
    MAPPER.writeValueAsString(userMapList);
    
    //反序列化---json格式的字符串要反序列化为对象
    
    MAPPER.readValue(你要反序列化的json字符串,new TypeReference<要反序列化为什么对象类型,例如 User.class>() {});

    序列化:将Js中的对象转化成Json格式,序列化的两个参数:过滤器和选项。

    var person = {
    username: ‘luohao’,
    password: 123456,
    location: ‘whu’
    }

    参数是一个数组,出现在数组中的属性才会序列化,其余属性忽略不计。

    var json = JSON.stringify(person, [‘username’, ‘password’]);
    console.log(json);
    {“username”:“luohao”,“password”:123456}
    var person = {
    username: ‘luohao’,
    password: 123456,
    location: ‘whu’,
    hometown: ‘wuhan’,
    }
    var json = JSON.stringify(person, function filter(key, value) {
    switch(key) {
    case ‘location’: return undefined;
    case ‘hometown’: return undefined;
    default: return value;
    }
    });
    console.log(json);
    
    {“username”:“luohao”,“password”:123456}

    JSON.stringify()中的第三个参数表示缩进的空格数,这样传输的数据可读性比较好。

    var person = {
    username: ‘luohao’,
    password: 123456,
    location: {
    province: ‘hubei’,
    city: ‘wuhan’,
    county: ‘qichun’
    },
    hometown: ‘wuhan’,
    }
    var json = JSON.stringify(person, function filter(key, value) {
    switch(key) {
    case ‘hometown’: return undefined;
    default: return value;
    }
    });
    console.log(json);
    {“username”:“luohao”,“password”:123456,“location”:{“province”:“hubei”,“city”:“wuhan”,“county”:“qichun”}}
    var person = {
    username: ‘luohao’,
    password: 123456,
    location: {
    province: ‘hubei’,
    city: ‘wuhan’,
    county: ‘qichun’
    },
    hometown: ‘wuhan’,
    }
    var json = JSON.stringify(person, function filter(key, value) {
    switch(key) {
    case ‘hometown’: return undefined;
    default: return value;
    }
    }, 2);
    console.log(json);
    
    {
    “username”: “luohao”,
    “password”: 123456,
    “location”: {
    “province”: “hubei”,
    “city”: “wuhan”,
    “county”: “qichun”
    }
    }

    【相关推荐:javascript视频教程web前端

    以上就是示例解析Json对象Json字符串的序列化与反序列化的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:ES6
    上一篇:一文详解node path模块的用法 下一篇:实例讲解node中http模块和url模块的使用方法
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• es6怎么删除数组中的某一个对象• es6怎么求数组中的奇数和• es6是什么机构制定的• es6中有继承吗• 一文快速详解ES6~ES12的全部特性!
    1/1

    PHP中文网