簡體   English   中英

使用JSON.parse將字符串(變量)轉換為對象,錯誤意外令牌

[英]Convert a string (variable ) to object with JSON.parse , error unexpected token

我在將字符串變量解析回對象時遇到問題。我已經查看了有關此主題的所有其他問題,但沒有一個解決我的問題。

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,'未捕獲的SyntaxError:意外的令牌o

但它們的變量始於一個對象。 我檢查了objStr的字符串類型。 我在objStr周圍添加文字單引號。 因為objStr已經是字符串,所以應該不會有問題吧? 我也完全嘗試了在變量周圍沒有多余的引號

我如何正確JSON.parse一個String變量。 我可以將其與eval一起使用,但是我寧願不使用它,因為它是用戶輸入的對象,必須放入一個對象中。

很抱歉再次困擾您一個有關此主題的問題,但我還沒有找到其他解決方案。

幫助將不勝感激! 謝謝耶尼塔

正如CBroe所說, JSON.parse()可以很好地解析JSON,而您在此處嘗試執行的任何操作都阻止了它的執行。

不需要您的幫助。 只要讓它完成工作並擺脫所有混亂:

var obj = JSON.parse(objStr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM