0

json 応答を生成する php スクリプトを作成しました

これは出力の例です:

[[],{"idgps_unit":"2","lat":"40","lon":"40","name":"ML350","notes":"Andrew","dt":"2012-10-29 19:43:09","serial":"3602152","speed":"44","odometer":"208.49"},{"idgps_unit":"1","lat":"42","lon":"39","name":"unit1","notes":"fake unit 1","dt":"2012-10-18 18:16:37","serial":"12345","speed":"0","odometer":"0.16"}]

これは、PHP で応答を作成する方法です。

   $data[] = array();
    foreach ($list->arrayList as $key => $value) {

        $unit = new Unit();
        $unit = $value;
        //create array for json output
        $data[] = array('idgps_unit' => $unit->idgps_unit, 'lat' => $unit->lat,
            'lon' => $unit->lon, 'name' => $unit->name, 'notes' => $unit->notes,
            'dt' => $unit->dt, 'serial' => $unit->serial, 'speed' => $unit->speed,
            'odometer' => $unit->odometer);
    }
    echo json_encode($data);

さて、JSでこれを行いました:

function getCheckedUnits() {
    jQuery(function($) {    
        $.ajax( {           
            url : "json.php?action=get",
            type : "GET",
            success : function(data) {
                var jsonData = JSON.parse(data);

                ///PARSE VALUES AND SUBMIT TO A FUNCTION :: START
                var C_longitude = 0;
                var C_name = 0;
                var C_idgps_unit = 0;
                var C_serial = 0;
                var C_speed= 0;
                var C_notes= 0;
                var C_dt = 0;
                var C_time = 0;
                var C_odometer = 0;

                initialize(C_longitude,C_name,C_idgps_unit, C_serial,C_speed, C_notes, C_dt, C_time, C_odometer);
                ///PARSE VALUES AND SUBMIT TO A FUNCTION :: END
            }
        });
    });
}

JSON応答を値に解析する必要があります

4

2 に答える 2

2

JSON 応答で連想配列のみを取得すると仮定するとJSON.parse(data)、次のように JSON データの値を取得できるはずです。

var i = 1;
var C_longitude = jsonData[i]["lon"];
var C_name = jsonData[i]["name"];

最初の空の配列が JSON.parse() によって削除されないと仮定すると、i = 1 はデータの最初のバッチを取得し、i = 2 は 2 番目のバッチを取得します。

解析された JSON は、JavaScript で定義された場合と同じように動作します。

于 2012-11-02T23:50:32.357 に答える
0

ajax設定を入れるdataType: "json"と、jsonオブジェクトが返されますが、再度解析する必要はありません。したがって、これは次のようになります。

function getCheckedUnits() {
    jQuery(function($) {    
        $.ajax( {           
            url : "json.php?action=get",
            type : "GET",
            dataType: "json"
            success : function(data) {

            }
        });
    });
}

ただし、独自のオプションを使用することもできますが、単に parseJSON 関数を使用するだけではありません。var jsonData = jQuery.parseJSON(data);

于 2012-11-02T23:50:46.237 に答える