JSON.stringify与JSON.parse详解与实践

目录

JSON.stringify

简介

主要用途:

API

实践1:

实践2:

JSON.parse

简介

API

实践1

实践2


JSON.stringify

简介

用于把JavaScript对象、数组、值、布尔值等序列化成字符串形式。

主要用途:

得到的数据通常有以下主要用途:

数据传输:在客户端和服务器之间传递数据时,通常需要把数据序列化为字符串进行传输。JSON是一种常见的数据交换格式,而JSON.stringify 可以很方便的将javascript 的对象等数据转换成JSON字符串,以便在网络上传输。

本地存储: 在浏览器端,localStoragesessionStorage 存储的数据必须是字符串形式。JSON.stringify 可以用来将 JavaScript 对象转为字符串,以便在本地存储中使用。

保存数据: 将数据存储到本地文件或数据库时,经常需要将数据转为字符串形式。JSON 格式的字符串是一个通用的选择,而 JSON.stringify 可以用来生成符合标准的 JSON 字符串。

JSON.stringify() - JavaScript | MDN

API

JSON.stringify(value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string

实践1:

const data = {
  key1: 'value1',
  key2: 'value2',
  key3: {
    subKey1: 'subValue1',
    subKey2: 'subValue2'
  }
};
//改变内容,把所有的value值变为大写
const jsonString = JSON.stringify(data, (key, value) => {
  // 使用 replacer 函数,将所有字符串值转为大写
  if (typeof value === 'string') {
    return value.toUpperCase();
  }
  return value;
}, 2);  // 使用缩进为2的空格

console.log(jsonString);

实践2:

const data = {
  key1: 'value1',
  key2: 'value2',
  key3: {
    subKey1: 'subValue1',
    subKey2: 'subValue2'
  }
};

//不改变内容,缩进4空格,便于阅读
const jsonString = JSON.stringify(data, null, 4);  // 使用缩进为4的空格

console.log(jsonString);

JSON.parse

简介

将JSON的字符串转换为 JavaScript的 对象。需要注意 必现符合JSON字符串格式的数据才行。

JSON.parse() - JavaScript | MDN

API

JSON.parse(text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined): any

实践1

const jsonString = '{"name": "John", "age": 30, "city": "New York"}';

const reviver = (key, value) => {
  // 将 age 属性的值加倍
  if (key === 'age') {
    return value * 2;
  }
  return value;
};

const parsedObject = JSON.parse(jsonString, reviver);

console.log(parsedObject);
// 输出: { name: 'John', age: 60, city: 'New York' }

实践2

const jsonString = '{"name": "John", "age": 30, "city": "New York"}';


const parsedObject = JSON.parse(jsonString);

console.log(parsedObject);
// 输出: { name: 'John', age: 30, city: 'New York' }

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JSON.stringify是将JavaScript对象转换为JSON字符串的方法,JSON.parse是将JSON字符串转换为JavaScript对象的方法。这两个方法在前端开发中经常用于数据的传输和存储。JSON.stringify可以将JavaScript对象转换为字符串,方便在网络传输和存储时使用;JSON.parse可以将JSON字符串转换为JavaScript对象,方便在前端代码中使用。 ### 回答2: JSON(JavaScript Object Notation)是一种常用的数据格式,可以实现数据的序列化和反序列化,方便网络传输和存储。其中,JSON.stringifyJSON.parse是两个重要的函数,分别用于将JavaScript对象序列化为JSON字符串和将JSON字符串解析为JavaScript对象。 JSON.stringify函数接受一个JavaScript对象作为参数,将其转换为JSON字符串。转换过程中,函数会自动忽略对象中的函数、undefined和Symbol类型属性,将日期类型转换为ISO格式的字符串,将NaN和Infinity类型转换为null,将对称类型NaN和-Infinity转换为null。此外,用户可以通过第二个参数来自定义转换规则,包括使输出的JSON字符串具有缩进、排序、过滤属性等可读性和安全性操作。 JSON.parse函数接受一个JSON格式的字符串作为参数,将其解析为JavaScript对象。解析过程中,函数会自动将JSON字符串中的日期类型的字符串转换为Date类型,将字符串类型的NaN和Infinity转换为null,将null、true、false转换为对应的JavaScript类型。同时,用户可以通过第二个参数来自定义解析规则,包括使输入的JSON字符串能够包括JavaScript中不支持的数据类型,如undefined、日期类型和正则表达式类型。 使用JSON.stringifyJSON.parse可以方便地完成前后端数据的传输和存储,实现数据的序列化和反序列化。在使用过程中,需要注意避免序列化和反序列化过程中的数据类型转换错误,以及避免引用类型数据的循环引用和递归嵌套。如果出现以上问题,可以通过用户自定义转换规则来解决。 ### 回答3: JSON(JavaScript Object Notation)是一种轻量级的数据交互格式。在前端开发中,我们经常需要将 JavaScript 对象转换为 JSON 字符串,或者将 JSON 字符串转换为 JavaScript 对象。这时候就需要用到 JSON.stringifyJSON.parse 这两个方法。 JSON.stringify 方法可以将 JavaScript 对象转换为 JSON 字符串。这个方法接受一个参数,即要转换的 JavaScript 对象。返回值是一个 JSON 字符串。 例如: ``` var obj = {name: "Tom", age: 18}; var jsonStr = JSON.stringify(obj); console.log(jsonStr); // 输出 {"name":"Tom","age":18} ``` JSON.parse 方法可以将 JSON 字符串转换为 JavaScript 对象。这个方法接受一个参数,即要转换的 JSON 字符串。返回值是一个 JavaScript 对象。 例如: ``` var jsonStr = '{"name":"Tom","age":18}'; var obj = JSON.parse(jsonStr); console.log(obj.name); // 输出 "Tom" ``` JSON.stringify 方法还可以接收两个可选参数。第一个参数是 replacer,可以是一个函数或一个数组。当 replacer 是一个函数时,它将被递归调用,遍历 JavaScript 对象的每个键值对。如果函数返回 undefined,则键值对被忽略。如果返回一个非 undefined 的值,则该值将被序列化成 JSON 字符串。当 replacer 是一个数组时,只有数组中包含的键值对才会被序列化成 JSON 字符串。 第二个参数是 space,可以是一个字符串或一个数字。当 space 是一个字符串时,它将被用作缩进,用来美化输出的 JSON 字符串。当 space 是一个数字时,它表示缩进的空格数。 例如: ``` var obj = {name: "Tom", age: 18, friends: ["Jerry", "Lily"]}; var jsonStr = JSON.stringify(obj, function(key, value) { if (key === "friends") { return value.join("-"); // 把数组转化为字符串 } return value; }, 2); console.log(jsonStr); /* 输出: { "name": "Tom", "age": 18, "friends": "Jerry-Lily" } */ ``` 以上就是关于 JSON.stringifyJSON.parse 的详细介绍。在前端开发中,善于利用这两个方法,能够更有效地进行数据交互和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值