2012-03-22 14 views
1

私は電話(geoLocationデータ)からデータを取得し、それをJSONオブジェクトに入れて、そのデータをネットワーク経由でデータベースに保存して保存したいと考えています。私はこのオブジェクトを作成する方法とオブジェクトの配列でなければならないかどうかは不明です。また、サーバーに送信するために更新される新しい情報を受け取るようにオブジェクトを設定するにはどうすればよいですか?ここに私は現在持っているコードです。私はeclipse、phonegap、javascript、およびJSONを使用しています。 JSONオブジェクトとオブジェクトの配列を作成する方法は?

var JSONID = 0; 

    // Create a JSON Object Array 
    geoLocJSON(); 

    /* This is what I want my Object to look like. 
    [ 
     { 
     "id" : 0, 
     "geoLoc" : { 
         "Lat" : "", 
         "Long" : "" 
        }, 
     "direction" : { 
         "Alt" : "", 
         "Head" : "", 
         "Speed" : "" 
         }, 
     "Time" : "" 
     }; 
    ] 
    */ 

// onSuccess Geolocation 
    function onSuccess(position){ 
     // Testing for data 
     var element = document.getElementById('geolocation'); 
     element.innerHTML = 
     'Latitude: ' + position.coords.latitude + '<br />' + 
     'Longitude: ' + position.coords.longitude + '<br />' + 
     'Altitude: ' + position.coords.altitude + '<br />' + 
     'Heading: ' + position.coords.heading + '<br />' + 
     'Speed: ' + position.coords.speed + '<br />' + 
     'Timestamp: ' + new Date(position.timestamp) + '<br />' + 
     '<hr />' + element.innerHTML; 

     // Puts into JSON Object 
     geoLocJSON.id = JSONID; 
     geoLocJSON.geoLoc.Lat = position.coords.latitude; 
     geoLocJSON.geoLoc.Long = position.coords.longitude; 
     geoLocJSON.direction.Alt = position.coords.altitude; 
     geoLocJSON.direction.Head = position.coords.heading; 
     geoLocJSON.direction.Speed = position.coords.speed; 
     geoLocJSON.Time = new Date(position.timestamp); 

     // Increments the JSONID 
     JSONID++; 
    } 

これは、次に、データ収集の1分後にサーバーに送信され、JSONオブジェクトは、POSTが失敗しない限り、そのオブジェクトは、デバイスにローカルに格納され、転記され消去されるときに、後でネットワーク再び利用可能です。

ありがとうございました。

答えて

0
var JSONID = 0; 


// Create a JSON Object Array 
var geoLocJSON = new Array(); 

/* This is what I want my Object to look like. 
[ 
    { 
    "id" : 0, 
    "geoLoc" : { 
        "Lat" : "", 
        "Long" : "" 
       }, 
    "direction" : { 
        "Alt" : "", 
        "Head" : "", 
        "Speed" : "" 
        }, 
    "Time" : "" 
    }; 
] 
*/ 

// onSuccess Geolocation 
function onSuccess(position){ 
    // Testing for data 
    var element = document.getElementById('geolocation'); 
    element.innerHTML = 
    'Latitude: ' + position.coords.latitude + '<br />' + 
    'Longitude: ' + position.coords.longitude + '<br />' + 
    'Altitude: ' + position.coords.altitude + '<br />' + 
    'Heading: ' + position.coords.heading + '<br />' + 
    'Speed: ' + position.coords.speed + '<br />' + 
    'Timestamp: ' + new Date(position.timestamp) + '<br />' + 
    '<hr />' + element.innerHTML; 

    var myJSON = { 
     "id":JSONID, 
     "geoLoc":{ 
      "Lat":position.coords.latitude, 
      "Long":position.coords.longitude 
     }, 
     "direction":{ 
      "Alt":position.coords.altitude, 
      "Head":position.coords.heading, 
      "Speed":position.coords.speed 
     }, 
     "Time":new Date(position.timestamp 
    }; 

    // Increments the JSONID 
    JSONID++; 
    geoLocJSON.push(myJSON); 
} 
+1

感謝のように働いた! – jdelbs18

関連する問題