javascript - 使用 JSON.parse 将字符串(变量)转换为对象,错误意外标记

标签 javascript json string parsing

我在将字符串变量解析回对象时遇到问题。我已经查看了围绕此主题的所有其他问题,但没有一个解决我的问题。

if(subMatch.match(/\{.*\}/)){          /// new Object of some sort

    var objStr=subMatch.match(/\{.*\}/)[0];
    //objStr= JSON.stringify(objStr);     // I tried this , no difference
    //objStr='"'+objStr+'"';         // Tried this way: unexpected token t
   //objStr="'"+objStr+"'";         // Tried this way: unexpected token '
    objStr=JSON.parse("'"+objStr+"'");  // puts out unexpected token '

这是我正在尝试的字符串:

{"type": "lawnmowing","hours": 10,"rate": 10.5,"permanent": false}

根据 JSONLint 它是有效的。加上额外的引号,它看起来像:

 '{"type": "lawnmowing","hours": 10,"rate": 10.5,"permanent": false}'                           

我看了这个问题,

JSON.Parse,'Uncaught SyntaxError: Unexpected token o

但是它们的变量是作为一个对象开始的。我查了一下,我的 objStr 的类型是 String。 我在 objStr 周围添加文字单引号。 因为 objStr 已经是一个 String,所以这应该不是问题,对吗? 我也完全尝试过在变量周围没有额外的引号

如何正确 JSON.parse 字符串变量。 我可以让它与 eval 一起工作,但我不想使用它,因为我必须将用户输入放入对象中。

很抱歉再次就这个主题的问题打扰您,但我在其他问题中还没有找到解决方案。

非常感谢您的帮助! 谢谢 杰尼塔

最佳答案

正如 CBroe 所说,JSON.parse() 可以自行很好地解析 JSON,无论您在这里尝试做什么都会阻止它这样做。

它不需要你的帮助。只要让它完成它的工作并摆脱所有困惑即可:

var obj = JSON.parse(objStr);

关于javascript - 使用 JSON.parse 将字符串(变量)转换为对象,错误意外标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28952621/

相关文章:

javascript - 如何将生成的运行时 block 捆绑到 Webpack 4 中的显式 vendor block 中

javascript - 如何引用动态创建的拉斐尔 Canvas ?

c - 引用用户传递的参数的单个字符

javascript - ng-repeat 不输出 JSON 数据

php - 做一个jQuery $.post() 到一个PHP Controller,然后在中间返回到View,然后使用$.get() 继续Controller

java - 如何在 2 个不同的长 ArrayList 之间找到 2 个字符串的最佳匹配

string - 检查子字符串是否在 Haskell 中的另一个字符串中的函数

javascript - 返回页面的同一部分(css/jQuery)

javascript - 是否可以使用对象 ID 而不是对象来初始化 Backbone 集合?

java - 将 url 编码数据转换为 json