gpt4 book ai didi

javascript - 试图在字符串中获取 javascript 对象

转载 作者:行者123 更新时间:2023-11-29 10:59:21 27 4
gpt4 key购买 nike

所以我尝试使用一个非常奇怪的 API,调用得到一个 javascript eval 代码的响应,这个代码包含我以这种方式 trim 的 javascript 对象:

var obj = resp.substring(0, resp.length-9);

这样得到的对象是这样的:

"{name: "Jon", code: 123, info: [{blah blah}, {blah blah}]}"

这个“对象”被识别为字符串,我无法提取它。

JSON 解析将不起作用,因为它不是 JSON。

新对象(obj);也不会,它输出每个字符 trim 的对象。

有什么建议吗?

编辑:1因此,用 <'> 替换每个 <"> 并不能解决问题。进一步的 JSON 解析结果在位置 1 处打印错误,位置 1 处有意外标记 n。

不断尝试新事物。

最佳答案

从外部源获取数据时,您确实应该谨慎使用 eval。

我建议尝试将字符串修复为正确的正则表达式而不是调用 eval,一种方法是创建一个正则表达式来匹配属性名称并将它们括在引号中:

let a = `{name: "Jon", code: 123, info: [{}, {}]}`;
let obj = JSON.parse(a.replace(/(\w|\d)+(?=\:)/g, "\"$&\""));

console.log(obj)

显然,如果您希望在对象的属性值中看到冒号,则此示例需要改进

关于javascript - 试图在字符串中获取 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50346790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com