JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在JavaScript中,JSON数据的封装主要涉及到两个方法:JSON.stringify()
和 JSON.parse()
。
JSON支持以下几种数据类型:
let obj = {
name: "张三",
age: 30,
isStudent: false,
courses: ["数学", "英语"],
address: {
city: "北京",
street: "朝阳路"
}
};
let jsonString = JSON.stringify(obj);
console.log(jsonString);
// 输出: {"name":"张三","age":30,"isStudent":false,"courses":["数学","英语"],"address":{"city":"北京","street":"朝阳路"}}
let jsonString = '{"name":"李四","age":25,"isStudent":true,"courses":["物理","化学"],"address":{"city":"上海","street":"浦东大道"}}';
let obj = JSON.parse(jsonString);
console.log(obj.name); // 输出: 李四
console.log(obj.courses[0]); // 输出: 物理
JSON.stringify()
失败如果对象内部存在循环引用,JSON.stringify()
会抛出错误。
解决方法:
可以使用第三方库如 circular-json
来处理循环引用的问题。
const CircularJSON = require('circular-json');
let circularObj = {};
circularObj.self = circularObj;
let jsonString = CircularJSON.stringify(circularObj);
JSON.parse()
解析非法JSON字符串报错如果尝试解析一个非法的JSON字符串,JSON.parse()
会抛出异常。
解决方法:
使用try...catch
语句来捕获并处理异常。
let jsonString = '{name:"张三",}'; // 非法JSON字符串
try {
let obj = JSON.parse(jsonString);
} catch (e) {
console.error("解析JSON失败:", e);
}
通过上述方法,可以有效处理JSON数据封装过程中可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云