JSON.stringify()与JSON.parse()

本文介绍了JavaScript中JSON.stringify()方法将对象转换为JSON字符串的过程,以及JSON.parse()用于解析JSON字符串。还讨论了Object.keys()获取对象键和在数据传输、存储和API交互中的应用。同时,对比了JSON.stringify()与toString()的区别。
摘要由CSDN通过智能技术生成

1.JSON.stringify()

       在 JavaScript 中,JSON.stringify() 方法可以将一个 JavaScript 对象或值换为对应的 JSON 字符串表示,(在这个例子中,使用了this.form来表示)转换为一个 JSON 字符串,所以,JSON.stringify(this.form)将返回包含表单数据的 JSON 字符串。

<script>
import changePersonSignVue from './change-person-sign.vue';
	export default {
		data() {
			return {
				form: {
					inputName: '',
					userId:'111'
				}

			}
		},
		onLoad(e) {
			console.log('e.name', e.namea)
			if (e.namea) {
				this.form.inputName = e.namea
			}
			var formData = JSON.parse(JSON.stringify(this.form));
			console.log('JSON.stringify',JSON.stringify(this.form));
			console.log('slice',JSON.stringify(this.form).slice(2,6));
			console.log('slice',`JSON.stringify(this.form).slice(2,7)+'-'+JSON.stringify(this.form).slice(14,16)`);
			console.log('slice',`${JSON.stringify(this.form).slice(2,7)}-${JSON.stringify(this.form).slice(14,16)}`);
			console.log(typeof(JSON.stringify(this.form)));
			console.log(' JSON.parse(JSON.stringify(this.form)',formData);
			console.log(typeof(formData));
			console.log('Object.keys',Object.keys(formData));
			console.log('split',JSON.stringify(Object.keys(formData)).split(','));
		},

2.JSON.parse()

  JSON.parse()方法用来解析 JSON 字符串,就是把JSON字符串转成对象。

3.Object.keys()

     在JavaScript中,使用Object.keys()方法可以将对象的键作为一个数组返回

     这段代码是用于获取一个对象(formData)的所有键(keys),formDataKeys将包含formData对象的所有键。

4.转JSON 字符串情况

  1. 数据传输:当您需要将数据从客户端发送到服务器,或者从服务器发送到客户端时,常常需要将数据转换为JSON字符串。因为JSON是一种通用的数据交换格式,可以轻松地在不同平台和语言之间进行解析和生成。

  2. 数据存储:如果您想要将JavaScript对象或值持久化保存到本地存储(例如文件系统、数据库等),则通常需要将其转换为JSON字符串。这样可以确保数据的完整性,并使其易于读取和写入。

  3. API交互:当使用Web服务的API时,通常会要求将请求和响应数据以JSON格式进行编码和解码。这样可以方便地在客户端和服务器之间传递数据,并确保数据的一致性和可读性。

  4. 序列化和反序列化:通过将JavaScript对象或值转换为JSON字符串,可以实现对象的序列化。这意味着您可以将对象保存为字符串,稍后再将其还原为相同的对象。这对于缓存、状态管理和数据传递非常有用。

5.JSON.stringify()和toString的区别

JSON.stringify()toString()是JavaScript中两个不同的方法,其作用也不同。

  • JSON.stringify():这是一个用于将JavaScript对象转换为JSON字符串的方法。它接受一个JavaScript对象作为参数,并返回一个表示该对象的JSON字符串。这个方法通常用于将数据从前端发送到后端,或者在数据传输过程中进行序列化和反序列化操作。

  • const obj = { name: 'John', age: 25 };
    const jsonStr = JSON.stringify(obj);
    console.log(jsonStr); // {"name":"John","age":25}
    
  • toString():这是一个用于将JavaScript对象转换为字符串的方法。它可以应用于各种JavaScript对象类型,例如数字、布尔值、数组、日期等。当调用toString()方法时,JavaScript会尝试将对象转换为相应的字符串表示形式。

  • const num = 10;
    const str = num.toString();
    console.log(str); // "10"
    

总结

  • JSON.stringify()用于将JavaScript对象转换为JSON字符串。
  • toString()用于将JavaScript对象转换为字符串,可以用于不同类型的对象。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答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 的详细介绍。在前端开发中,善于利用这两个方法,能够更有效地进行数据交互和处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值