2017-03-22 2 views
0

RESTを送信する特定の構造を持つJSONを準備しようとしています。 250のイベントごとに、私はこれらのイベントでJSONペイロードを送信したいと思います。私は以下のコードを使用してこれをエミュレートしようとしていますが、何も返されていません。配列を使用して特定のJSON構造を準備する

var eventQueue = new Array(); 

for (j = 0; j < 251; j++) { 
    var curr_timestamp = new Date().getTime(); 

    eventQueue.push({ 
     "client_ip" : "127.0.0.1", 
     "timestamp" : curr_timestamp, 
     "user_name" : "Robert" 
    }); 

    if(j = 250) { 
     var jString = JSON.stringify(eventQueue); 
     var payload = '{"root":{"user_data":[' + jString + ']}}'; 
    } 
} 

私のようなルックスを作成する必要がJSONペイロード構造は:

{ 
    "root":{ 
     "user_data":[ 
     { 
      "client_ip":"127.0.0.1", 
      "timestamp":"1723452955", 
      "user_name":"Robert" 
     }, 
     { 
      "client_ip":"127.0.0.1", 
      "timestamp":"1723452956", 
      "user_name":"Robert" 
     }, 
     { 
      "client_ip":"127.0.0.1", 
      "timestamp":"1723452957", 
      "user_name":"Robert" 
     }, 
     ... 
     ] 
    } 
} 

私は構造を準備したり、より良い方法がある代わりにjoinを使用する必要がありますか。

+1

「j = 250」は割り当てです。 – PHPglue

答えて

1

j = 0を間違って使用しています。少なくともj == 0でなければなりません。あなたは、これはすべての250件のイベントが起こるしたいなら、あなたは次のようになります。MOD(%)

var eventQueue = new Array(); 

for (j = 0; j < 251; j++) { 
    var curr_timestamp = new Date().getTime(); 

    eventQueue.push({ 
     "client_ip" : "127.0.0.1", 
     "timestamp" : curr_timestamp, 
     "user_name" : "Robert" 
    }); 

    if(j % 250 == 0) { 
     var jString = JSON.stringify(eventQueue); 
     var payload = '{"root":{"user_data":[' + jString + ']}}'; 
    }} 
0
var eventQueue = []; 

for (var j = 0; j < 250; j++) { 
    eventQueue.push({ 
     client_ip: "127.0.0.1", 
     timestamp: new Date().getTime(), 
     user_name: "Robert" 
    }); 
} 

var payload = JSON.stringify({ 
    root: { 
     user_data: eventQueue 
    } 
}); 
1

あなたのコードを使用することができます。

var resObj = {root:{user_data:[]}}; 
for(var i=0; i<251; i++){; 
    resObj.root.user_data.push({ 
    client_ip: '127.0.0.1', 
    timestamp: new Date().getTime(), 
    user_name: 'Robert' 
    }); 
} 
console.log(resObj); 
0

PHPglueは正しいです。 eventQueueは配列なので、JSON.stringify()は余分な文字を返します。 []を追加する必要はありません。それ以外の場合はuser_dataになります。[[...]]

関連する問題