如何使用PHP(或Python)将描述对象的字符串转换为JSON字符串?
例如:转换它(不是有效的JSON字符串):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
进入这个:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
我希望尽可能避免使用eval()。
答案 0 :(得分: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 :(得分: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"] }