我在html页面想构建json数据类型,里面有三个字段,请问如何用jquery构建好能被json解析的格式字符串(三个自字段)

解决方案 »

  1.   

    var s = {"uid":1,"username":"zhangsan","age":20};
      

  2.   

    var obj={'a':'a','b':'b','c':'c'};
    alert(obj.a);
      

  3.   

    我说一下我的思路把 ~我现在页面有5条数据,是有ul构建的,里面有三条字段,我现在想通过jquery构建好json格式,通过ajax发送到一般处理程序中,在通过解析拿出数据,做更新。现在就是如何循环构建5条数据里面三个字段构建的json格式??
      

  4.   

    var json = {items:[{字段1:"",字段2:"",子段3:""},{字段1:"",字段2:"",子段3:""},{字段1:"",字段2:"",子段3:""}]};
    这个json是一个数组,可以放多组这种{字段1:"",字段2:"",子段3:""}数据
    var jsonObject = eval("("+json +")");
    取的话可以: for(var i = 0; i<jsonObject.items.length;i++)
                 {
                     var node = items[i];
                       var 字段1 = node.子段1;
                       .....
                  }
      

  5.   

    var jsonObject= {items:[]};
    jsonObject.items.push({id:值, name:值,sex:值});
    这样可以很方便的循环组装
      

  6.   

    不管你是从哪儿读取的都应该有你自己的格式 你按照这个格式来构造和读取就可以了啊! 我理解的是你要把json传到handler中去,通过程序读值。如果是这样的话建议使用xml传值,在程序中用xmldocument可以很方便的处理.如果你硬要用json的话会很麻烦(1,正则匹配2。反射成XML或实体对象)
      

  7.   


    是的,我就是要把json传到handler中去,通过程序读值,这样很麻烦吗??要是构建xml格式的话,页面应该如何构建呢?
      

  8.   

    给你看个列子吧
              for(var i in this.selectedCHK)
              {
      
     orderList += "<items><officeToolId>"+this.selectedCHK[i].id+"</officeToolId><officeNum>"+this.selectedCHK[i].value+"</officeNum></items>";
      
              }this.selectedCHK是一个对象数租 可以换成你从页面读出来的数据,这样就构造好了XML字符串,把它传到程序中后你用new一个XMLDOCUMENT对象用它的LOADXML方法就可以任意操作你需要的数据了
      

  9.   


    那我在页面传过去的格式是还是字符串格式把!在handle里面用什么类型数据接受啊?
      

  10.   

    个人感觉用JSON方便些,XML应用在后台要写的代码太多了,通过AJAX传到后台后,数据量大的话用POST,根据后台语言把需要的数据解析出来!如果传值给前台也是一样的,先在后台把数据组合成JSON格式,再传回给前台!
      

  11.   

    你发过去的数据一定要组成JSON格式的吗??你也可以自己组合,只要方便你后台解析就可以了!
    后台数据发到前台的时候,为了方便JS处理,才组合成JSON格式的!
      

  12.   

    简单的可以到http://json.org去下载json2.js
    然后引入到页面,之后把你要处理的数据存到对象或数组中
    之后 var json_data = JSON.stringify(Object)
    然后这个json_data变量就是你所要的json格式了
    传到后台后,如果是php,则用
    $json_data = json_decode($_POST['xxx']);
    之后就可以使用
    $json_data->xxx
    这样的格式来访问数据
    如果是php后台传递到前台
    则使用
    $data['abc'] = xxx;
    $data['tab_arr'] = array(4,6,8,3);
    echo json_encode($data);  //一般用json是在AJAX应用上吧??所以这里直接用echo了
    传递到前台后,用
    var json_data = eval("(" + xmlHttpRequest.responseText + ")");
    然后就可以像下面这样来访问数据
    alert(json_data['abc']);
    for(var i = 0; i < json_data['tab_arr'].length; i++) {
      alert(json_data['tab_arr'][i]);
    }
      

  13.   

    如果不想用json2.js 或者数据比较简单,不需要用到json2.js(数据简单还调用这js库的话,就有点大材小用了,再者json格式要创建也是挺简单的,如果熟悉后,根本就不需要json2.js了)自己创建json格式
    var num = document.getElementById("num").value;  // 数字格式
    var str = document.getElementById("str").value;  // 字符串格式
    var tb  = document.getElementById("tab").tBodies[0].rows;
    var json_data = "{\"num\":" + num + ",\"str\":\"" + encodeURIComponent(str) + "\",\"obj\":{\"numVal\":3,\"strVal\":\"string\",\"arrVal\":[[3,6],[7,2]],\"objVal\":{\"xxx\":123}}";
    if(tb.length > 0) {
      json_data += ",\"tab\":[";
      for(var i = 0; i < tb.length; i++) {
        json_data += "[" + parseInt(tb[i].cells[0].firstChild.value, 10) + "," + parseInt(tb[i].cells[1].firstChild.value, 10) + "],";
      }
      json_data = json_data.substring(0, (json_data.length - 1));  //删除字符串最后的,符号
      json_data += "]}";
    } else {
      json_data += "}";
    }
    最后json_data就是一个字符串,类似这样
    json_data = "{\"num\":1,\"str\":\"%E4%B8%AD%E6%96%87\",\"obj\":{\"numVal\":3,\"strVal\":\"string\",\"arrVal\":[[3,6],[7,2]],\"objVal\":{\"xxx\":123}},\"tab\":[[3,7],[5,76]]}";直接把这字符串传递到后台
    var post_data = "post_data=" + json_data;
    xmlHttpRequest.open("POST", url, true);
    xmlHttpRequest.setRequestHeader("Content-Length", post_data.length);
    xmlHttpRequest.setRequestHeader("Cache-Control", "no-cache");
    xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    xmlHttpRequest.send(post_data);后台用json_decode函数来反序列就行了
    $data = json_decode($_POST['post_data']);
    $data对象的结构如下$data
    stdClass Object
    (
      [num] => 1
      [str] => 中文
      [obj] => stdClass Object
        (
          [numVal] => 3
          [strVal] => string
          [arrVal] => Array
            (
              [0] => Array
                (
                  [0] => 3
                  [1] => 6
                )
              [1] => Array
                (
                  [0] => 7
                  [1] => 2
                )
            )
          [objVal] => stdClass Object
            (
              [xxx] => 123
            )    )
      [tab] => Array
        (
          [0] => Array
            (
              [0] => 3
              [1] => 7
            )
          [1] => Array
            (
              [0] => 5
              [1] => 76
            )
        )
    )
      

  14.   

    http://dev2dev.weblogicfans.net/techdoc/2007/03/java-soa-introduction-json.html
    看下去 你就轻松地掌握啦