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

如何把ajax返回的json型字符串转换为json对象
json数据是以字符串从后台返回的. 但是前台接收到的时候被加上了xml标签. 用了eval和JSON.parse方法全部无效. 应该怎么处理这种数据

HTML code


<?xml version="1.0" encoding="utf-8"?>

<string xmlns="http://tempuri.org/">{

   "ArrayOfFunction":{

            "Actives":"",

            "Description":"111",

            "FunctionName":"12345",

            "PageName":"#",

            "PagePath":"#",

            "functionid":"05BA37E0-0BA6-4236-9A30-5D4C51D21368"
   }

}</string>



------解决方案--------------------
那你把:<string xmlns="http://tempuri.org/">和
</string>

先截取掉。
------解决方案--------------------
JScript code
var xml = '<?xml version="1.0" encoding="utf-8"?>'+
            '<string xmlns="http://tempuri.org/">{'+
            '   "ArrayOfFunction":{'+
            '            "Actives":"",'+
            '            "Description":"111",'+
            '            "FunctionName":"12345",'+
            '            "PageName":"#",'+
            '            "PagePath":"#",'+
            '            "functionid":"05BA37E0-0BA6-4236-9A30-5D4C51D21368"'+
            '   }'+
            '}</string>';
var json = eval('('+/{[\s\S]+}/.exec(xml)[0]+')');
alert(json)

------解决方案--------------------
最好是解析xml获取需要的节点内容,要不正则提取复制结构的json有得你弄的了

2#就是用正则提取json字符串出来然后eval生成json对象