JavaScript 如何解析 JSON

打开网页时,你可能没注意到,当你点击“获取最新天气”按钮,几秒后屏幕就跳出了气温、降水这些信息——这背后大多是JavaScript在和JSON“搭伙干活”。很多人听过JSON,也知道它是网页数据的“搬运工”,但JavaScript到底是怎么读懂这些数据的?咱们用生活里取快递的例子,一步步把这件事说清楚。

第一步:拿到“快递包裹”——JSON字符串

快递员送来的包裹,外面裹着防水袋,里面才是你的快递;对应到代码里,刚从服务器拿到的JSON,是一串带引号的“字符串”,就像刚拿到的未拆包裹。

JavaScript 如何解析 JSON

举个生活化的例子:你订了一杯奶茶,外卖APP给你的“包裹”(JSON字符串)是这样的:

'{"奶茶类型":"珍珠奶茶","杯型":"中杯","糖度":"三分糖","价格":18}'

这串字符有个特点:它是纯文本,JavaScript没法直接“挑出”里面的奶茶类型、价格,就像你不能直接拿未拆的快递找奶茶——得先拆包。

第二步:拆开“快递包装”——解析JSON为JS对象

拆快递的过程,对应JavaScript里的JSON.parse()方法,它的作用就是把JSON字符串,转成JavaScript能直接用的“对象”。

还是用刚才的奶茶例子:

`javascript

// 这是刚拿到的JSON字符串,相当于未拆的快递

const jsonStr = '{"奶茶类型":"珍珠奶茶","杯型":"中杯","糖度":"三分糖","价格":18}';

// 用JSON.parse()拆包裹,得到JS对象

const milkTeaObj = JSON.parse(jsonStr);

`

现在milkTeaObj就不是一堆乱字符了,它变成了你熟悉的对象,就像拆开后拿到的奶茶单:你要珍珠奶茶、中杯、三分糖,甚至能直接拿到价格18,不用再扒外层的包裹。

这里要注意:就像快递里不能塞违禁品,JSON字符串里也不能放JS的“专属符号”——比如函数、日期对象,不然parse()会报错,就像快递塞了管制刀具,快递员不收。

第三步:“使用包裹里的东西”——调用解析后的数据

拿到对象后,你想怎么用都行:比如算总价、显示订单信息,就像你拿到奶茶单后,可以告诉收银员“就是这个单,我要付款”。

还是用奶茶的例子,解析后你可以直接调用:

`javascript

console.log(你的奶茶是${milkTeaObj.奶茶类型},价格${milkTeaObj.价格}元);

// 输出:你的奶茶是珍珠奶茶,价格18元

`

放在网页里,这行代码就能把奶茶信息直接显示在页面上,和你平时看的天气、订单信息是一个逻辑。

万一拿错了?解析失败的情况

刚才说的都是顺利的情况,但现实里偶尔会拿错快递——JSON字符串写错了,比如少了引号、逗号,或者用了JS的特殊值,这时候JSON.parse()就会报错,网页可能卡住,甚至显示“数据加载失败”。

比如把刚才的JSON写成:'{奶茶类型:"珍珠奶茶"}'(少了外层的双引号),parse()就会报错,就像快递袋破了,里面的东西漏了,你没法顺利取到。

遇到这种情况,前端开发者一般会加个“检查”,比如用try...catch包裹parse(),就像你收到快递先检查包装,破了就退回,不会乱拆:

`javascript

try {

const milkTeaObj = JSON.parse(jsonStr);

} catch (error) {

console.log("抱歉,订单数据出错啦");

}

`

这样网页就不会直接崩溃,能友好地提示用户。

其实JavaScript解析JSON的逻辑,本质就是“把人类能读的文本,转成计算机能直接用的‘数据块’”——就像把快递从包裹里拆出来,直接用就行。现在你再看网页加载数据,是不是能明白背后的小细节了?

上一篇 C / C++ 入门必知:从基础语法到高效开发的核心知识科普