我前台js有个复杂的数组,装的是object。我需要把这个数组赋值给后台。每个object的每个属性都要赋值。网上说用字符串拼接我想这样会不会太长了。有没有其他的方法。如图:

解决方案 »

  1.   

    如果说这些数据是插入到数据库里面的话,我觉得可以把它拼成XML格式的字符,在数据库解析插入!
      

  2.   

    传字符串到后台 "a,b,c,d";
    后台 "a,b,c,d".Split(',')
     
      

  3.   

    还是字符串提交到后台吧
    <input type="text" id="txt" size="99999" />
        <input type="button" onclick="aaa()" />
        <script>
        function aaa(){
         var a=new Array([['Sony','a0'], ['Samsumg','a1'], ['LG','a2'], ['Vizio','a3'], ['Insignia', 'a4']],[['Sony','b0'], ['Samsumg','b1'], ['LG',21], ['Vizio','b2'], ['Insignia', 'b3']]);
         var bt=','+a.toString()+',';
         document.getElementById('txt').value= bt.replace(/,Sony,/g,',').replace(/,Samsumg,/g,',').replace(/,LG,/g,',').replace(/,Vizio,/g,',').replace(/,Insignia,/g,',');
        }
        </script>
      

  4.   

    我这个前台的数组比较复杂,每个索引里都是一个object,每个object都有8个属性。那拼接字符串也太复杂了吧
      

  5.   

    拼接长点用post方式提交就可以
    拼接也不是很复杂啊
    var datas = '[';
    for(var i=0; i< arr.length; i++){
        datas += '{';
        foreach(var field in arr[i])
           datas += '"' + field + '":"' + encodeURIComponent(arr[i].getAttribute(field)) + '",';
        datas += datas.substr(0, datas.length - 1) + '}';
    }
    datas += "]";
            
      

  6.   

    我是菜鸟今天才知道有json还在了解中。。
      

  7.   

      那个encodeURIComponent我看了看,不太懂啊,是提高安全性?按你这样转成的字符串在后台是用JavaScriptSerializer去反序列化就可以了吧
      

  8.   

    那个提高不了安全性,只是为了更可靠的拼接出json字符串,也可以将用replace('"','\"')转义
    实际上值类型的,如float,boolean,int,date等都不应该带引号,并且date类型应该转换成utc格式
      

  9.   

    JavaScriptSerializer需要一个相匹配的类型才能反序列化
    你可以用第三方的Newtonsoft.Json.dll或者Json.net
    http://www.cnblogs.com/sbxwylt/archive/2008/12/31/1366199.html
      

  10.   

    意思就是我要将json反序列化成我自己的一个类对象,就比较麻烦了?搞完就结分了。