2016-11-15 62 views
0

我有一個讀取文本區域輸入的函數。將文本區域的輸入字符串轉爲輸入對象

文本區域的輸入以字符串形式返回,但我希望它是一個對象。

如何將它變成一個對象?我用json.parse和eval。我得到的錯誤: VM16897:1未捕獲的語法錯誤:在JSON意外標記v在位置0 在JSON.parse()來

我想要的格式:

var a = { 
        "ss": [{ 
         "name": "O", 
          "id": "shh1", 
          "url": "hthh.sss" 
         }] 
        }], 
        "Maacks": [{ 
        "name": "Default", 
          } 
        }] 
       } 

我所得到的,當我得到textarea的輸入:

"var a = { 
        "ss": [{ 
         "name": "O", 
          "id": "shh1", 
          "url": "hthh.sss" 
         }] 
        }], 
        "Maacks": [{ 
        "name": "Default", 
          } 
        }] 
       }" 

回答

1

如下所示,您應輸入如下所示的不帶var a =。此外,你必須糾正你的開啓和關閉大括號。

{ 
        "ss": [{ 
         "name": "O", 
          "id": "shh1", 
          "url": "hthh.sss" 
         } 
        ], 
        "Maacks": [{ 
        "name": "Default" 
          } 
        ] 
       } 

然後解析如下使用JSON.parse

var a = JSON.parse(textArea.value); 

工作樣本

// Copy the below content inside the commented line (/* ... */) into the text area and click the 'Convert' button, 
 

 
/* 
 

 
{ 
 
    "ss": [{ 
 
         "name": "O", 
 
          "id": "shh1", 
 
          "url": "hthh.sss" 
 
         } 
 
        ], 
 
        "Maacks": [{ 
 
        "name": "Default" 
 
          } 
 
        ] 
 
} 
 

 
*/ 
 

 

 

 
function convert() { 
 
    var jsonText = document.getElementById('textArea').value; 
 
    if(jsonText) { 
 
    try { 
 
     var json = JSON.parse(jsonText); 
 
     console.log(json); 
 
    } catch(e) { 
 
     console.log(e);  
 
    } 
 
    } 
 
}
<textarea id="textArea" rows="10" cols="50"></textarea> 
 
<br/> 
 
<input type="button" value="Convert" onclick="convert()"/>

+0

這就是我要建議,唯一的問題是他們沒有b alanced括號,但這不是你的錯。 – Feathercrown

+0

@Feathercrown感謝您指出並糾正了上面的問題。 – Aruna

+0

不客氣。 – Feathercrown