javascript - 如何将字符串解析为对象?

标签 javascript parsing

背景

我有一个包含 JavaScript 对象的字符串。该字符串不是 JSON 字符串化的(只有一部分是)。

我需要将此字符串转换为一个对象,以便我可以使用它。

以下是此类字符串的示例:

`{method: 'POST', url: '/iot/pipe/', query: {}, body: { d: '{"n": "861359031087669", "b": 100, "v": "02.37", "t": 1, "d":[[1515070895,413973366,21717600,110,1,0],[1515070897,413975033,21719083,102,1,0]]}' }, headers: { host: 'node_session_iot', connection: 'close', 'content-length': '1219', accept: '*/*', 'user-agent': 'QUECTEL_MODULE', 'content-type': 'application/x-www-form-urlencoded' } }`

JSON.parse

该字符串不是 json 字符串化的,因此解析将失败。

评估

eval 是邪恶的。切勿使用它。

解决方案?

我觉得这非常令人沮丧。该物体就在我面前,但我无法用它做任何事情。 我还需要什么其他选项才能将此字符串转换为对象?

最佳答案

嗯,我不会说这是一个完美的解决方案,它是非常具体的示例,但想法是将字符串逐步转换为 JSON 字符串

希望有效果

//take in quotation
y = x.replace(/(\w+)(\s*:)+/g,"\"\$1\"$2");
//convert single quotation into "
y = y.replace(/\'/g,"\"" );
// remove " from object literals
y = y.replace(/\"\s*{/g,"{" );
y = y.replace(/}\"\s*/g,"}" );
yOjb = JSON.parse(y);

关于javascript - 如何将字符串解析为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49317618/

相关文章:

javascript - 如何通过它的 id 删除我的 ul 中的所有 li?

javascript - 由于 Mongoose 查询/ promise 而无法获取所需的数据

parsing - 使用 Happy (Haskell) 从 yacc 语法生成 Fortran 77 解析器

php - 如何解析 Postgresql 查询的用户搜索字符串?

android - Android环境解析的500KB json文件

javascript - 错误类型错误 : "this.canvas is undefined" | Problem with creating a chart with angular and chart. js

javascript - 防止通过另一个元素的触发点击关闭导航栏

com - 日志解析器错误

python - 使用 Beautifulsoup 进行抓取并出现错误 "Access to this page has been denied."

javascript - 获取错误 Uncaught ReferenceError : firebase is not defined