文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Json字符串的序列化与反序列化怎么实现

2024-04-02 19:55

关注

今天小编给大家分享一下Json字符串的序列化与反序列化怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Json字符串的序列化与反序列化怎么实现

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”
}
}

以上就是“Json字符串的序列化与反序列化怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯