JSON.stringify||JSON.parse|学习问题总结

1、<pre></pre>格式化输出

2. 设置标签间间距:margin

3、设置行间距:line-height

4、JSON.stringify 将 JS对象转换为 JSON 字符串。JSON.stringify(value, replacer, space)

  • value:必需,待转换的值;
  • replacer:可选,函数或数组;
  • sapce: 可选,缩进、空格(\t、数字)和换行符。     

   例:JSON.stringify(item, null, 4)

5、JSON.parse(text, reviver)  将一个 JSON 字符串转换为对象。

  • text: 必需, 有效的 JSON 字符串。
  • reviver: 可选,在返回之前对所得到的对象执行变换(操作)。
JSON.parse('{"1": 1, "2": 2,"3": {"4": 4, "5": {"6": 6}}}', function (k, v) {
    console.log(k)   //测试函数从最里层开始执行。属性名: 1 2 4 6 5 3
    if(k === '') return v     // 如果到了最顶层,则直接返回属性值,
    return v * 2             // 否则将属性值变为原来的 2 倍。
})                          

 

### JSON.parse 的使用方法及常见错误解决 #### 1. JSON.parse 的基本用法 `JSON.parse` 是 JavaScript 中用于将 JSON 字符串解析为 JavaScript 对象的方法。其语法如下: ```javascript JSON.parse(text[, reviver]) ``` - `text`:必需,表示需要被解析的 JSON 字符串。 - `reviver`:可选,用于在返回之前转换每个已解析的值[^3]。 例如: ```javascript const jsonString = '{"name": "Alice", "age": 25}'; const obj = JSON.parse(jsonString); console.log(obj.name); // 输出: Alice ``` #### 2. 常见错误及解决方法 ##### (1) 非法 JSON 格式 如果传递给 `JSON.parse` 的字符串不是有效的 JSON 格式,会抛出 `SyntaxError` 错误。例如,使用单引号而不是双引号包裹键值对会导致错误[^1]。 **解决方法**:确保 JSON 字符串符合标准格式(如使用双引号)。 ```javascript // 错误示例 const invalidJson = '{'name': 'Alice'}'; // 单引号导致错误 JSON.parse(invalidJson); // 抛出 SyntaxError // 正确示例 const validJson = '{"name": "Alice"}'; // 使用双引号 const obj = JSON.parse(validJson); // 正常解析 ``` ##### (2) 空字符串或无效内容 传递空字符串或其他不符合 JSON 规则的内容时,也会抛出错误[^2]。 **解决方法**:在调用 `JSON.parse` 之前检查输入是否为空或无效。 ```javascript const invalidJson = ''; try { const obj = JSON.parse(invalidJson); // 抛出错误 } catch (error) { console.error('An error occurred:', error.message); } ``` ##### (3) 特殊值无法序列化 当尝试通过 `JSON.stringify` 转换对象后再解析时,特殊值(如 `undefined`、`Symbol` 等)会被忽略或丢失[^5]。 **解决方法**:避免依赖 `JSON.stringify` 和 `JSON.parse` 进行深度拷贝,可以考虑使用第三方库(如 `lodash` 的 `cloneDeep` 方法)来处理复杂对象。 ```javascript const obj = { a: undefined, b: Symbol('test') }; const jsonString = JSON.stringify(obj); // 输出: {} const parsedObj = JSON.parse(jsonString); // 结果丢失了特殊值 ``` ##### (4) 捕获和处理错误 由于 `JSON.parse` 在遇到无效 JSON 字符串时会抛出错误,因此建议使用 `try...catch` 来捕获并处理这些错误[^3]。 ```javascript const jsonString = 'Invalid JSON string'; try { const obj = JSON.parse(jsonString); console.log(obj); } catch (error) { console.error('An error occurred:', error.message); } ``` #### 3. JSON.parse 的优点与局限性 ##### (1) 优点 - **简单易用**:仅需一行代码即可完成 JSON 字符串到 JavaScript 对象的转换。 - **适用于简单对象**:对于结构简单的 JSON 数据,效果良好[^5]。 ##### (2) 局限性 - **不支持特殊值**:无法正确处理 `undefined`、`Symbol` 等特殊值。 - **浅拷贝问题**:对于嵌套对象,可能需要额外逻辑来确保深拷贝[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值