首页前端开发其他前端知识Json对象Json字符串的序列化与反序列化是什么?

Json对象Json字符串的序列化与反序列化是什么?

时间2024-03-26 13:06:03发布访客分类其他前端知识浏览994
导读:在实际案例的操作过程中,我们可能会遇到“Json对象Json字符串的序列化与反序列化是什么?”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一...
在实际案例的操作过程中,我们可能会遇到“Json对象Json字符串的序列化与反序列化是什么?”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。

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

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来进行数据的接受和传递)

  • 前端有 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包下面的,这是他的依赖

       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是Listuser>
    的格式,现在我们需要将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对象Json字符串的序列化与反序列化是什么?”的内容了,通过以上内容的阐述,相信大家对Json对象Json字符串的序列化与反序列化是什么?已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

ES6

若转载请注明出处: Json对象Json字符串的序列化与反序列化是什么?
本文地址: https://pptw.com/jishu/653518.html
Golang中怎么实现判断错误类型,代码是什么 Node.js模块化开发有什么好处,怎么实现

游客 回复需填写必要信息