2

データベース関数を処理するこの Web サービスを作成しました。これは、メソッドの 1 つに対する AJAX 呼び出しです。

 $.ajax({
        type: "POST",
        url: "Service/dataBaseService.asmx/getRMAData",
        data: '{"RMAId": 1 }',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: true,
        cache: false,
        success: function (data) {
            console.log(data);
            alert(data.RMA_ID);
        }
  });

これはログに記録されるものです:

({d:"[{\"RMA_ID\":1,\"RequestDate\":\"2013-02-28T00:00:00\",\"Company\":1,\"Status\":\"Accepted            \",\"Serial\":201764,\"LastChangeDate\":\"2013-02-28T00:00:00\",\"LastChangeBy\":\"Foreign    \",\"Price\":null}]"})

ただしalert(data.RMA_ID)、 undefined とdata.d.RMA_ID?を返します。

どうすれば値を取得できますか?

4

2 に答える 2

6

dataログに記録したの値dは、文字列値を含む という名前のプロパティを持つオブジェクトです。おそらくサーバー側で調整を行ってd、文字列ではなくオブジェクトの値を作成することもできますが、現在の構築方法では、 を使用してオブジェクトに解析できますJSON.parse

これが完了すると、結果のオブジェクトは 1 つのオブジェクトを含む配列になります。したがって、へのアクセスRMA_IDは次のようになります。

var data = JSON.parse(data.d);
alert(data[0].RMA_ID);
于 2013-04-24T11:46:13.457 に答える
0

簡単な JavaScript を使用して、JSON 応答を解析する必要があります

var resp = eval('(' + data + ')');

またはjQueryを介して

var resp = jQuery.parseJSON(data);

「.」を使用してデータにアクセスできるようになりました。とキー名

console.log(resp.d[0].RMA_ID)
于 2013-04-24T11:50:55.033 に答える