【问题标题】:Convert an object to an array suitable for an ajax post将对象转换为适合 ajax 帖子的数组
【发布时间】:2013-06-20 13:43:33
【问题描述】:

我有以下对象,我需要将其转换为 ajax 帖子的数组。有谁知道如何在 javascript/jquery 中做到这一点?

[Object, Object, Object, Object]
    0: Object
      name: "authenticity_token"
      value: "d8792991d3941352c00474e3f6b4081bd1d7e818"
    1: Object
      name: "_method"
      value: "POST"
    2: Object
      name: "email"
      value: "sdaasdsa"
    3: Object
      name: "password"
      value: "asddadsadasdsa"

这是我的 jquery 帖子,我需要将对象作为字段数组:

     jQuery.post(formAction, fields).done(function(response) {
         console.log(response);
     }, "json");

谢谢 皮特

【问题讨论】:

  • 看起来你这里有一个对象数组
  • jQuery.makeArray(Obj)

标签: javascript jquery ajax arrays object


【解决方案1】:

我认为您需要以类似的方式迭代对象:

    tosend = {};
    for(key in object) {
      tosend[object[key].name] = object[key].value;
    }

【讨论】:

    【解决方案2】:
    var url;
         $.ajax({
                type: "POST",
                url: url,
                cache: false,
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify({
                    fields
                }),
            }).done(function (msg) {
                alert("success");
            });
    

    【讨论】:

      【解决方案3】:

      说明:将类数组对象转换为真正的 JavaScript 数组。

       var myArray =  $.makeArray(myObj);
      

      或者

       var myArray  = myObj.toArray();
      

      你也可以这样做

      var myArray ={};
      $.each(myObj, function(name, value){
        //console.log(name, value);
       myArray [myObj[key].name] = myObj[key].value;
      });
      

      【讨论】:

      • 你能说出以上哪一个在性能方面更好吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多