日期:2014-05-16  浏览次数:20430 次

求格式化JSON的正则表达式
例如{a:{a1:1,a2:2},b:{b1:1,b2:2},c:{c1:1,c2:2}}转成下面这个样子:
{"a":{"a1":"1","a2":"2"},"b":{"b1":"1","b2":"2"},"c":{"c1":"1","c2":"2"}};

如果原先键值用单引号的,把它换为双引号,去空格去换行

如果有ActionScript版本的更好,我用的是ActionScript

------解决方案--------------------
能不能转个思路,先转为对象再来字符
------解决方案--------------------
/['\s]?([^:{,'\s"}]+)['\s]?(?=[:,$}])/g

能不能一次性把需求说清楚完整呢


------解决方案--------------------
你在导入flash之前,后台代码在输出字符串前不能改为flash需求的相应的格式?

让flash代码搞这个不是个好主意。
------解决方案--------------------
说实话,这一行正则是很变态的。
JScript code

var str = "{   '     a ':{ '    a1  '   :   '1',  'a2':'2'},   b :{b1:1,b2:2},c:{c1:1,c2:2 }}";

alert(str.replace(/(\s|'|\s'|'\s)*([^\{\}\s\:\,']+)(\s|'|\s'|'\s)*(?=[\}\:\,])/g,"\"$2\""))