2016-11-18 4 views
0

私は、単一データまたはバルクデータを受け入れ、それに応じて応答を送ることができるAPIを持っています。私は以下のようにデータを送信しています。オブジェクトにデータを追加する方法は?

var contactId = 123; 
var url = "www.abc.com"; 
var companyName = "ABC"; 
var compLink = "/abc/123/link"; 
var randomKey = generateRandomKey(); 

    $.ajax({ 
     url:liurl, 
     type:"POST", 
     data:JSON.stringify({ 
      "verification_key":randomKey, 
      "listData" : 
       [{ 
       "contactid":contactId, 
       "url": url, 
       "li_company":companyName, 
       "complink":compLink 
      }] 
     }), 
     contentType:"application/json", 
     dataType:"json", 
     success: function(result){ 
      $.each(result, function(index, element) { 
       //perform operation on 'result' 
      }); 
     } 
    }); 

上記のコードは完全に機能し、適切な応答が得られます。私は一度に1つの以上のレコードを確認したいときにlistData以上1つのレコードの詳細が含まれて見ることができるようになりましたlistData

{ 
    "verification_key":"d0vvNl04dk3y", 
    "listData" : 
     [{ 
     "contactid":"241", 
     "url":"http://www.name.com/in/daveandrews", 
     "companyName":"Devious Media", 
     "complink":"/company/devious-media" 
    }, 
    { 
     "contactid":"242", 
     "url":"http://www.name.com/in/something", 
     "companyName":"Sol Media", 
     "complink":"/company/somemedia" 
    },{ 
     "contactid":"243", 
     "url":"http://www.name.com/in/daveandrews", 
     "companyName":"Mega Media", 
     "complink":"/company/xyzmedia" 
    }] 
} 

、このようにする必要があります。これらの複数のデータを1つのオブジェクトに結合してAPIに送信する方法を理解できません。 FYIでは、contactid, url, companyName and complinkの値が配列に格納されます。 例:

var contactid = [1,2,3,4,5] 
var companyName = ["abc","xyz","qwe","asd","zxc"]; 
+0

最初の配列を繰り返して、ループのインデックスを使用して2番目(またはそれ以上)の配列から正しい値を引き出す必要があります。これは常に完全な順序であると仮定しています。初心者https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach –

+0

「これらの複数のデータを1つのオブジェクトに結合する」とはどういう意味ですか?重要なことは、あなたのAPIは何を期待していますか?私はそれがあなたの2番目のコードブロックに表示されているものを正確に期待していると思うでしょうが、もちろん、私はそれを知ることができません。 –

+0

はい、APIは2番目のコードブロックに示すようにデータを受け取ります –

答えて

2

あなたは巧妙な何かを探して、またはそれは、このシンプルでいますか?私はこれに魔法の機能的アプローチがあるとは思わないが、多分他のものは私よりも賢いです。ちょうどあなたのリクエストに添付し、listDataプロパティが正しい形式を有する

let listData = []; 

for (let i=0; i < contactid.length; i++) { 
    listData.push({ 
     contactid: contactid[i], 
     url: "http://www.name.com/in/something", 
     li_companyName: companyName[i], 
     complink: complink[i] 
    }); 
} 

(新しい要求を組み立てる方法でアップデート):

と仮定すると、あなたの配列は同じ長さの、このようなものです直接。

$.ajax({ 
    url:liurl, 
    type:"POST", 
    data:JSON.stringify({ 
     "verification_key":randomKey, 
     "listData" : listData 
    }), 
    contentType:"application/json", 
    dataType:"json", 
    success: function(result){ 
     $.each(result, function(index, element) { 
      //perform operation on 'result' 
     }); 
    } 

});

+0

これは私が探しているものに非常に似ていますが、2番目のコードブロックに示すように 'verification_key'を追加する方法を教えてください。 verification_keyは1回だけ追加されることに注意してください。 –

関連する問題