如何在Node.js中读取WordPress API V2含冒号的JSON对象键
解决WordPress API含冒号键的提取问题
别担心,带冒号这类特殊字符的对象键确实没法用常规的点语法访问,不过换用方括号语法就能轻松搞定!结合你给出的JSON结构,我给你两种实用的提取方式:
方式一:直接通过方括号访问
假设你已经把API返回的JSON解析成了JavaScript对象(比如命名为posts),可以这样提取wp:featuredmedia的内容:
// 示例解析后的数组对象 const posts = [ { "id": 2873, "title": { "rendered": "some title" }, "_embedded": { "wp:featuredmedia": [ { "id": 3091, "date": "2018-04-18T20:51:42", "slug": "dr", "source_url": "some image url" } ] } } ]; // 提取第一篇文章的特色媒体数组 const featuredMedia = posts[0]._embedded["wp:featuredmedia"]; console.log(featuredMedia); // 输出:[{ id: 3091, date: "2018-04-18T20:51:42", ... }] // 进一步提取图片URL const imageUrl = posts[0]._embedded["wp:featuredmedia"][0].source_url; console.log(imageUrl); // 输出:"some image url"
方式二:ES6解构赋值(更优雅的写法)
如果你习惯用现代JavaScript语法,解构赋值能让代码更简洁:
// 从数组中取出第一篇文章 const [firstPost] = posts; // 解构出_embedded里的wp:featuredmedia const { _embedded: { "wp:featuredmedia": mediaArray } } = firstPost; // 再从媒体数组中取出第一项的图片URL const [firstMedia] = mediaArray; const { source_url: imageUrl } = firstMedia; console.log(imageUrl); // 输出:"some image url"
为啥点语法不行?
JavaScript的点语法要求键名是有效标识符——不能包含冒号、空格这类特殊字符,所以遇到这类特殊键,必须用["键名"]的方括号形式来访问。
内容的提问来源于stack exchange,提问作者Eng xtian
相关产品推荐
相关产品推荐

