我是靠谱客的博主 可靠画笔,这篇文章主要介绍示例解析Json对象Json字符串的序列化与反序列化,现在分享给大家,希望可以做个参考。

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

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

Json

复制代码
1
2
3
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字符串

复制代码
1
2
3
var b='{"name":"2323","sex":"afasdf","age":"6262"}';//json字符串 console.log(b);//{"name":"2323","sex":"afasdf","age":"6262"} alert(typeof(b));//string
登录后复制

序列化

  • 前端有 json对象和json字符串
  • 后端有 对象 和json字符串

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

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

前端的序列化和反序列化

  • 将json对象序列化成json字符串: JSON.stringify(json对象)–前端把数据序列化了 传给后端
  • 反序列化:将json字符串反序列化为对象: JSON.parse(str)–后端传过来的序列化过的数据

后端的序列化和反序列化

  • 序列化是 java对象->json字符串。
  • 反序列化是 json字符串->java对象

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

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

复制代码
1
2
3
4
5
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.3</version> </dependency>
登录后复制
复制代码
1
2
3
4
5
6
7
8
9
10
11
//类属性, 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格式,序列化的两个参数:过滤器和选项。

复制代码
1
2
3
4
5
var person = { username: ‘luohao’, password: 123456, location: ‘whu’ }
登录后复制

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

复制代码
1
2
3
var json = JSON.stringify(person, [‘username’, ‘password’]); console.log(json); {“username”:“luohao”,“password”:123456}
登录后复制
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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()中的第三个参数表示缩进的空格数,这样传输的数据可读性比较好。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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”}}
登录后复制
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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字符串的序列化与反序列化的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是可靠画笔最近收集整理的关于示例解析Json对象Json字符串的序列化与反序列化的全部内容,更多相关示例解析Json对象Json字符串内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(114)

评论列表共有 0 条评论

立即
投稿
返回
顶部