2016-03-29 13 views
2

json.stringify()関数は、jsonオブジェクトをjson文字列に変換することを知っています。文字列をjsonオブジェクトに変換するjavascript

json.stringify({x:9}) 

これは、文字列"{"x" : 9}"

を返します。しかし、JSON形式に簡単な文字列を変換する方法はありますか?たとえば あなたはjQueryのを使用している場合、私はこの

var str = '{x: 9}' 
json.stringify(str) //"{"x" : 9}" 
+1

'var str = '{" x ":9}'; var obj = JSON.parse(str) ' –

答えて

3

を訪問することはできます、あなたがJSON.parseを使用することができます参照してください.parseJSON $を使用することができます。 はevalを使用して

var str = '{"x" : 9}', 
 
    obj = JSON.parse(str); 
 

 
document.write('<pre>' + JSON.stringify(obj, 0, 4) + '</pre>');  

0

まず解決策:

const parseRelaxedJSON = (str) => eval('(_ => (' + str + '))()') 
JSON.stringify(parseRelaxedJSON('{x: 5}')) 

(_ => (' + str + '))()自己実行匿名関数です。 eval{x: 5}のような文字列を評価する必要があります。

(function() { 
    return {x: 5} 
})() 

第二ソリューション:この方法でevalは、あなたがES6構文に慣れていない場合と同等である式関数(_ => ({x: 5}))()を評価されますJSON5

JSON.stringify(JSON5.parse('{x: 2}')) 
のような適切な「リラックス」JSONパーサーを使用して

JSBin

関連する問題