我用ajax,返回一个字符串,如下:{ id:1, pId:0, name:"节点1"},{ id:2, pId:0, name:"节点2"},{ id:3, pId:0, name:"节点3"}请问下,怎么把这个字符串转换成json,谢了~
还有一个问题jQuery.ajax(
                {
                    type: "post",              
                    url: "Action.ashx",  
                    //contentType: "application/x-www-form-urlencoded; charset=utf-8", 
                    //contentType: "application/json; charset=utf-8",          
                    //async: false,      //是否ajax同步              
                    dataType:"json",
                    data: {act:"getList"},
                    success: function (date){                    }
                });
当添加了dataType:"json"时,对后台返回的字符串有什么要求吗?
{ id:1, pId:0, name:"节点1"},{ id:2, pId:0, name:"节点2"},{ id:3, pId:0, name:"节点3"}
返回上面这样的字符串不行吗?

解决方案 »

  1.   

    json的话必须是严格的 双引号。。{"name": "Tom"}类似这样的。后台返回的字符串满足了json的格式,那么 ajax 在 设置 dataType为json的情况下,其返回值就是object
    直接就可以操作
    success: function (date){
    alert(data.id)
     }
      

  2.   

    应该是这样吧:
    [{ id:1, pId:0, name:"节点1"},{ id:2, pId:0, name:"节点2"},{ id:3, pId:0, name:"节点3"}]
    你要已数组的形式返回吧。
      

  3.   

    如果是dataType:"json"
    只能返回1个json吗?
    { "id":"1", "pId":"0", "name":"节点1"},{ "id":"1", "pId":"0", "name":"节点2"}
    返回这个就报错~~
      

  4.   

    需要数组[{ "id":"1", "pId":"0", "name":"节点1"},{ "id":"1", "pId":"0", "name":"节点2"}]
    success: function (date){
    alert(data[0].id)alert(data[1].id)
    }