78
function (data) {
    //add values based on activity type
    //data = JSON.parse(data);
    //alert(abc.Phone1);

    alert(data.myName)

    alert(data.toString());
    if (activityType == "Phone") {
    }
    return;

},

ご覧のとおり、コントローラーからデータ$.ajaxを取得するこのコールバック関数。JSON

例えば:

[{"name":"myName" ,"address": "myAddress" }]

この場合、未定義の最初のアラートと2番目/3番目のアラートポップアップが表示されます。

[{"name":"myName" ,"address": "myAddress" }]

名前で値にアクセスして、最初のアラートにmyName値を入力するにはどうすればよいnameですか?

4

8 に答える 8

115

JSON を解析する代わりに、次のようにすることができます。

$.ajax({
  ..
  dataType: 'json' // using json, jquery will make parse for  you
});

JSON のプロパティにアクセスするには、次のようにします。

data[0].name;

data[0].address;

data[0]data は配列であるため、必要な理由は、その内容を取得するために必要data[0](最初の要素) であり、 object を提供します{"name":"myName" ,"address": "myAddress" }

また、オブジェクト ルールのプロパティにアクセスするには、次のようにします。

Object.property

または時々

Object["property"] // in some case

だからあなたが必要です

data[0].nameなどなど、欲しいものを手に入れましょう。


そうでない場合

設定dataType: jsonしたら、それらを使用して解析し$.parseJSON()、上記のようにデータを取得する必要があります。

于 2012-06-05T10:09:34.547 に答える
30

受け取っている JSON は文字列です。それを JSON オブジェクトに変換する必要があります コードの最も重要な行をコメントしました

data = JSON.parse(data);

または、jQuery を使用している場合

data = $.parseJSON(data)
于 2012-06-05T10:08:33.010 に答える
16

あなたの応答が次のような場合{'customer':{'first_name':'John','last_name':'Cena'}}

var d = JSON.parse(response);
alert(d.customer.first_name); // contains "John"

ありがとう、

于 2014-11-27T15:19:57.773 に答える
6

やったほうがいい

alert(data[0].name); //Take the property name of the first array

そしてそうではない

 alert(data.myName)

jQuery は、dataType を設定しなくても、データ型をスニッフィングできるはずなので、JSON.parse は必要ありません。

ここでフィドル

http://jsfiddle.net/H2yN6/

于 2012-06-05T10:09:43.883 に答える
4

このコードを試してください..

function (data) {


var json = jQuery.parseJSON(data);
alert( json.name );


}
于 2012-06-05T10:09:35.787 に答える
2

dataType: 'json' ajax configで言及し、その値にアクセスする必要があると思います:

data[0].name
于 2012-06-05T10:15:19.160 に答える
0

ここに友好的なアドバイスがあります。Chrome Developer ToolsFirebug for Firefoxなどを使用して、Ajax 呼び出しと結果を検査します。

Underscoreのようなヘルパー ライブラリを理解するために時間を費やすこともできます。このライブラリは、jQuery を補完し、JavaScript でデータ オブジェクトを操作するための 60 以上の便利な関数を提供します。

于 2012-06-05T10:27:09.400 に答える