javascript - 试图在字符串中获取 javascript 对象
问题描述
所以我试图使用一个非常奇怪的 API,调用得到一个 javascript eval 代码的响应,这个代码包含我以这种方式修剪的 javascript 对象:
var obj = resp.substring(0, resp.length-9);
从而得到这样的对象:
"{name: "Jon", code: 123, info: [{blah blah}, {blah blah}]}"
这个“对象”被识别为一个字符串,我无法提取它。
JSON 解析不起作用,因为它不是 JSON。
新对象(对象);也不会,它会输出每个字符修剪的对象。
有什么建议么?
编辑:1 所以用 <'> 替换每个 <"> 并不能解决问题。进一步的 JSON 解析结果会在位置 1 打印一个错误,在位置 1 带有意外的标记 n。
不断尝试新事物。
解决方案
Eval 函数会在您的代码中调用许多严重的安全问题。相反,您可以做的是,因为您有一个字符串,只需将每个双引号(“)替换为字符串中的单引号。然后解析它。
JSON.parse 仅在 javascript 解析器未获得完美的对象级字符串时才会失败。
代码:
var objStr = "{name: "Jon", code: 123, info: [{blah blah}, {blah blah}]}";
var obj = JSON.parse(objStr.replace(/"/g, "'"));
推荐阅读
- python - 如何使用 python 通过我的 hotmail.com 帐户自动发送电子邮件?
- c# - 在 ef core 2.1 中重写相关子查询
- django - Django HttpResponse:用户单击按钮后下载 Excel
- java - 如何在 Spring Boot 的每个请求中获取当前用户?
- sqlite - 如何配置 sqlite3 的 tcltests?
- java - JSONObject 创建 Json 对象问题
- java - 序列化会导致安全问题。如何克服它们?要遵循什么方法?
- python - Python tkinter 使用按钮进行串行工作
- java - 为什么第二个变量取 fis 的值?而块是独立的
- javascript - 循环遍历 ID 和数组 jQuery