2016-12-28 18 views
-1

オブジェクトを記述する文字列をPHP(またはPython)を使用してJSON文字列に変換するにはどうすればよいですか?非JSON文字列をJSONに変換する

例えば:私はevalの()可能な場合は使用を避けるのが大好きだ

str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }' 

:この中

var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }" 

:この(NOT有効なJSON文字列)を変換します。正規表現の

+0

より良いあなたが新しい配列を作成し、ヒックは、PHPやPython –

答えて

4

カップルは操作がそれを行う必要があります置き換える:ある

var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"; 
 

 
var json = str.replace(/(\w+):/g, '"$1":') 
 
       .replace(/'/g, '"'); 
 

 
console.log(json);

は、最初のコロン(/(\w+):/g)が続いている1つの以上の単語文字のすべてのインスタンスを置き換え、すべての一重引用符をdoubleに変更します。

+0

にPHPでこの機能でこの配列を変更したり、 Pythonでは、私は両方の正規表現ベースの置換の同等のカップルをさせるだろうと思うだろう。 JavaScriptを必要としなかった場合、その質問に「JavaScript」というタグを付ける理由は何ですか? –

+0

ではありません、申し訳ありませんが、私は本当にPHPをしない私を助けてくださいJSONのjson_encode – nnnnnn

0

のpython3

import re 

s = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }" 
# ' => " 
s = re.sub(r"'", '"', s) # or s = s.replace("'",'"') 
# key: => "key": 
s = re.sub(r'(\w+):', '"\g<1>":', s) 
print(s) 
# { "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] } 
関連する問題