您的位置:

JS JSON对象转字符串深度剖析

JS JSON对象转字符串是一个非常基础且重要的操作,随着应用场景的不同,涉及到的知识点也会有所不同。本文将从多个角度对JS JSON对象转字符串进行深度阐述,包括数据类型、API使用方法、转换过程中的注意事项等。

一、JSON对象介绍

JSON是JavaScript Object Notation的缩写,是一种轻量级的数据交换格式。

JSON对象是JavaScript的内置对象,可以在代码中直接使用。JSON对象有两个方法:JSON.stringify()用于将JS对象转换成JSON字符串,JSON.parse()用于将JSON字符串转换成JS对象

//JS对象
let person = {
  name: '张三',
  age: 18,
  isStudent: true,
  hobbies: ['篮球', '游泳']
};

//使用JSON.stringify()方法将JS对象转换成JSON字符串
let personStr = JSON.stringify(person);
console.log(personStr);
//输出结果:
//{"name":"张三","age":18,"isStudent":true,"hobbies":["篮球","游泳"]}

//使用JSON.parse()方法将JSON字符串转换成JS对象
let personObj = JSON.parse(personStr)
console.log(personObj);
//输出结果:
//{name: "张三", age: 18, isStudent: true, hobbies: Array(2)}

二、JS数据类型转换

在进行JS JSON对象转字符串过程时,需要注意JS数据类型的转换问题。JS中各种数据类型转换的规则如下:

1、数值型转字符串型:通过toString()方法即可将数值型转换成字符串型。

let num = 123;
let str = num.toString();
console.log(typeof str + ' ' + str);
//输出结果:string 123

2、字符串型转数值型:通过Number()或者parseFloat()方法将字符串型转换成数值型。

let str1 = "123";
let str2 = "123.45";
let num1 = Number(str1);
let num2 = parseFloat(str2);
console.log(typeof num1 + ' ' + num1);
console.log(typeof num2 + ' ' + num2);
//输出结果:number 123
//         number 123.45

3、布尔型转字符型:通过toString()方法将布尔型转换成字符串型。

let bool = true;
let str = bool.toString();
console.log(typeof str + ' ' + str);
//输出结果:string true

4、字符型转布尔型:通过Boolean()方法将字符串型转换成布尔型。

let str1 = "true";
let str2 = "false";
let bool1 = Boolean(str1);
let bool2 = Boolean(str2);
console.log(typeof bool1 + ' ' + bool1);
console.log(typeof bool2 + ' ' + bool2);
//输出结果:boolean true
//         boolean false

5、数组、对象转字符串型:数组和对象在使用JSON.stringify()方法转换成字符串型时,会将数组、对象内部的元素全部转换为字符串,从而影响到原数组、对象的类型,数据处理过程中需要注意这一点。

//数组
let arr = [1, true, "hello"];
let arrStr = JSON.stringify(arr);
console.log(typeof arrStr + ' ' + arrStr);
//输出结果:string [1,true,"hello"]

//对象
let obj = {a:1, b:true, c:"hello"};
let objStr = JSON.stringify(obj);
console.log(typeof objStr + ' ' + objStr);
//输出结果:string {"a":1,"b":true,"c":"hello"}

三、JSON.stringify()方法使用

JSON.stringify()方法是将JS对象转换成JSON字符串的核心方法。

1、语法格式

JSON.stringify(value[, replacer[, space]])

参数说明:

value: 必选参数,要进行转换的JS对象

replacer:可选参数,用来筛选需要转换的对象的属性

space:可选参数,用来对字符串进行格式化操作,可以是空格或字符串(默认是不使用格式化)

2、使用方法

let a = {
  name: '小明',
  age: 18,
  gender: '男',
  hobbies: ['唱歌', '跳舞']
};

let b = JSON.stringify(a);
console.log(b);
//输出结果:{"name":"小明","age":18,"gender":"男","hobbies":["唱歌","跳舞"]}

3、replacer参数的使用

replacer参数可以通过函数的方式进行使用,函数的返回值即为转化后的值。

let a = {
  name: '小明',
  age: 18,
  gender: '男',
  hobbies: ['唱歌', '跳舞']
};

let b = JSON.stringify(a, function(key, value) {
  if(key == "gender") {
    return undefined;
  }
  return value;
});

console.log(b);
//输出结果:{"name":"小明","age":18,"hobbies":["唱歌","跳舞"]}

4、space参数的使用

let a = {
  name: '小明',
  age: 18,
  gender: '男',
  hobbies: ['唱歌', '跳舞']
};

let b = JSON.stringify(a, null, 4);

console.log(b);
//输出结果:
//{
//    "name": "小明",
//    "age": 18,
//    "gender": "男",
//    "hobbies": [
//        "唱歌",
//        "跳舞"
//    ]
//}

四、JSON.parse()方法使用

JSON.parse()方法是将JSON字符串转换成JS对象的核心方法。

1、语法格式

JSON.parse(text[, reviver])

参数说明:

text: 必选参数,要进行转换的JSON字符串类型的数据

reviver:可选参数,用来修复由JSON.stringify()方法造成的数据损坏

2、使用方法

let a = '{"name":"小明","age":18,"gender":"男","hobbies":["唱歌","跳舞"]}';

let b = JSON.parse(a);

console.log(typeof b + ' ' + b.name + ' ' + b.age + ' ' + b.gender + ' ' + b.hobbies);
//输出结果:object 小明 18 男 唱歌,跳舞

3、reviver参数的使用

reviver参数可以通过函数的方式进行使用,函数的返回值即为转化后的值。

let a = '{"name":"小明","age":18,"gender":"男","hobbies":["唱歌","跳舞"]}';

let b = JSON.parse(a, function(key, value) {
  if(key == "gender"){
    return undefined;
  }
  return value;
});

console.log(typeof b + ' ' + b.name + ' ' + b.age + ' ' + b.gender + ' ' + b.hobbies);
//输出结果:object 小明 18 undefined 唱歌,跳舞

五、转换过程中的注意事项

1、转换JS对象时,对象的属性名必须是双引号引起来的字符串,不能是未使用双引号引起来的字符串或者数字,并且数组不支持最后一个元素后逗号。

//使用JSON.stringify()方法转换错误的示例
let a = {
  name: "xiaoming",
  age: 18,
  gender: "男"
};

let b = JSON.stringify(a);
console.log(b);
//输出结果:{"name":"xiaoming","age":18,"gender":"男"}

2、转换JSON字符串时,JSON字符串的格式必须正确,否则会报错。

//使用JSON.parse()方法转换错误的示例
let a = '{"name":"xiaoming","age":18,"gender":"男"';
let b = JSON.parse(a);

console.log(typeof b + ' ' + b.name + ' ' + b.age + ' ' + b.gender);
//输出结果:Unexpected end of JSON input undefined undefined undefined

3、对于循环引用的情况,JSON.stringify()方法会跳过循环引用的属性,而JSON.parse()方法不会处理循环引用的属性。

let a = {
  name: "xiaoming",
  age: 18,
  child: {
    name: "xiaohong",
    age: 15,
    father: null
  }
};

a.child.father = a;

let b = JSON.stringify(a);
console.log(b);
//输出结果:{"name":"xiaoming","age":18,"child":{"name":"xiaohong","age":15}}

let c = JSON.parse(b);
console.log(c);
//输出结果:{name: "xiaoming", age: 18, child: {name: "xiaohong", age: 15}}

六、总结

本文从JSON对象的介绍、JS数据类型转换、JSON.stringify()方法使用、JSON.parse()方法使用、转换过程中的注意事项等多个方面介绍了JS JSON对象转字符串的知识点。通过这篇文章的学习,相信大家对JSON对象转字符串已经有了更深入的了解。

JS JSON对象转字符串深度剖析

2023-05-21
phpjson字符串转对象(php json转字符串)

本文目录一览: 1、php 怎么 字符串 转 json对象 2、JSON PHP中,Json字符串反序列化成对象/数组的方法 3、php如何返回json对象呢 4、PHP怎么把json字符串转为对象

2023-12-08
Python字符串转JSON对象

2023-05-20
cjson字符串长度,cjson解析json字符串

2022-11-24
json字符串转clob(json字符串转换为Json对象

本文目录一览: 1、如何把这样的json串转换成对象 2、oracle clob xml json 3、java中json字符串怎么转json对象 4、如何把一个json文件转换成字符串 5、Orac

2023-12-08
JavaScript JSON对象转字符串

2023-05-20
javajson(javajson字符串转json对象)

2022-11-09
JS解析JSON字符串

2023-05-19
重学java笔记,java笔记总结

2022-11-23
Python中json字符串与json对象转换详解

2023-05-20
由php对象生成json字符串(json字符串转json对象

本文目录一览: 1、php怎么json数据转化为字符串 2、php转换成json数据格式 3、php对象转json字符串时如何排序 4、php如何将json对象转字符串 5、如何把对象转化为字符串 p

2023-12-08
Java字符串转JSON字符串

2023-05-20
c#json字符串转json对象详解

2023-05-18
php解析json字符串,php json字符串转json对

2022-11-23
使用java将json字符串转换成实体类,java json

2023-01-04
深入探讨JSON对象转JSON字符串

2023-05-21
java集合转json字符串,java字符串转json对象

2022-11-25
javajson,javajson字符串转对象

本文目录一览: 1、java怎么处理json格式数据 2、java开发,json是干什么的 3、Java解析json数据 4、请问Java中json是什么? 5、java怎么读取json格式的数据 6

2023-12-08
js对象深度克隆代码实现,js浅克隆和深克隆的区别

本文目录一览: 1、JS中如何进行对象的深拷贝 2、JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析 3、js怎么克隆对象 4、如何使用原生 javascr

2023-12-08
php如何将字符串转成json格式(php字符串转json对

本文目录一览: 1、PHP 怎么字符串转换成json格式输出 2、php转换成json数据格式 3、PHP怎么把多个数组揉成一个json字符串? 4、php string类型转换成json类型 5、p

2023-12-08