如果键名没有由单引号包裹,那么它不符合 JSON 格式的规范,因此无法直接使用 JSON 解析器来提取键值对。但你仍然可以使用正则表达式或手动解析的方式来提取这样的键值对。/n/n下面是一个使用正则表达式提取键值对的示例代码:/n/njavascript/nconst input = '{name: 'John', age: 30, city: 'New York'}';/n/n// 匹配键名和键值的正则表达式/nconst regex = /(/w+)/s*:/s*('[^']*'|/w+)/g;/n/nlet match;/nconst result = {};/n/nwhile ((match = regex.exec(input)) !== null) {/n const key = match[1];/n const value = match[2].startsWith('/'')/n ? match[2].slice(1, -1) // 去掉单引号/n : match[2];/n/n result[key] = value;/n}/n/nconsole.log(result);/n// 输出: {name: 'John', age: 30, city: 'New York'}/n/n/n这里的正则表达式 (//w+)//s*://s*('[^']*'|//w+) 匹配了一个或多个字母数字字符作为键名,然后是一个冒号,接着是可选的空格,最后是一个字符串(由单引号包裹)或者一个字母数字字符作为键值。/n/n请注意,这种方式只适用于键名和键值都不包含特殊字符的情况。如果键名或键值包含特殊字符(如空格、冒号等),则需要对正则表达式进行适当的修改。

如何提取类似 JSON 格式但键名无引号的键值对

原文地址: https://www.cveoy.top/t/topic/qmMG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录