web-dev-qa-db-ja.com

AJAX呼び出しからJSONオブジェクトを取得

AJAXjavascriptが初めてです。私のプロジェクトでは、jsonファイルでjavascriptオブジェクトを取得する必要があります。 spray-jsonを使用しましたが、URLにjsonオブジェクトが表示されます。 http://localhost:8081/all-modules

{
  "status": "S1000",
  "description": "Success",
  "results": ["module1", "module2", "module3"]
}

私のAjax呼び出し

  $.ajax({
        url: 'http://localhost:8081/all-modules',
        dataType: 'application/json',
        complete: function(data){
            alert(data)
        },
        success: function(data){
            alert(data)
        }

警告[object Object]を返します。ここの問題は何ですか?

12
Shashika

以下を試してください。

var data = '{"name": "John","age": 30}';

var json = JSON.parse(data);

alert(json["name"]);
alert(json.name);

次のリンクも確認できます。 JavaScriptでJSONオブジェクトにアクセスする方法

16
Cybermatatu

JSONオブジェクトのすべてのデータを表示する場合は、JSON.stringifyを使用します。詳細については here を参照してください

お役に立てば幸いです。

4
ipohfly

console.log(data)だけで、オブジェクトが表示されます。

このような方法であなたの価値にアクセスできます

data.id //will give you id

jsonの作成方法にも依存します。これについては、説明を参照してください。

// if it simply json then access it directly
//Example => {"id":1,"value":"Apple"}
data.id; // will give you 1 

// if it json array then you need to iterate over array and then get value.
//Example => [{"id":1,"value":"Apple"},{"id":2,"value":"MANGO"}] then
data[0].id;  // will give you 1 

あなたのコードは次のようになります

 $.ajax({
    url: 'http://localhost:8081/all-modules',
    dataType: 'application/json',
    complete: function(data){
        alert(data.status);// S1000
        alert(data.description);// Success
        // for results you have to iterate because it is an array
        var len =  data.results.length;
        for(var i=0;i<len;i++ ){
            alert(data.results[i]);
        }
    },
    success: function(data){
        alert(data)
    }
})
1
rajesh kakawat

dataはJSON形式ではなく、 Javascript Object です。 jQuery.parseJSONのような関数を使用する必要はもうありません。

これは初心者にとってよくある間違いです。

このJavascriptオブジェクトを表示する場合は、alert(JSON.stringify(data));を試してください

0
James King

console.log()を試してください。コンソールにログオンします。アラートはオブジェクトを表示しません。

 $.ajax({
    url: 'http://localhost:8081/all-modules',
    dataType: 'application/json',
    complete: function(data){
        console.log(data)
    },
    success: function(data){
        console.log(data)
    }
0
Pratik Bhoir

オブジェクトを印刷しているだけだと思います。このようなことを試してください

$.ajax({
    url: 'http://localhost:8081/all-modules',
    dataType: 'application/json',
    complete: function(data){
        alert("status = "+data.status+"descripttion"+data.description);
    },
    success: function(data){
         alert("status = "+data.status+"descripttion"+data.description);
    }
0
kamesh

_data[0].status;_を試してください。データはオブジェクトになりました。 console.log(data)でそれを見ることができます

0
John Priestakos