1

これを印刷すると:console.log( response );

それは私にこのjson配列を与えます:

{    
    "myStudentId":17,
    "myName":"beng",
    "myAge":38,
    "myAddress":"Los Angeles, California, USA.",
    "myGender":"Female",
    "myReligion":"Catholic",
    "myStatus":"boom",
    "myOccupation":"Actress",
    "myEducationLevel":"Undefined",
    "graduate":true
}

値にアクセスしたいgraduate。私がこれまでに試したことは次のとおりです。

console.log( response["graduate"] );
console.log( response.graduate );

しかし、これはすべて戻りますundefined。これを行う方法はありますか?可能であれば、ループを使用したくありません。可能であればキーでアクセスしたい。

編集:

コールバックにx-editable 成功メソッドを使用しています。

$(this).editable({
    pk: pk,
    name: id,
    url: '../admin/edit_studentInfo.do',
    validate: function( value ) {
       if($.trim( value ) == '') {
          return 'This field is required';
       } else if( isNaN( value ) && id == 'age' ) {
          return 'Only accepts numbers';
       }
        },
    success: function(response, newValue) { // call back
       var test = response;
       console.log( JSON.stringify(response) );
       console.log( response );
       console.log( response["graduate"] );
       console.log( response["myName"] + ', ' + response.myName );
    }
});

編集可能な初期化とテストも含めました

4

2 に答える 2

3

responseは文字列です。エンコードされたオブジェクトのプロパティにアクセスするには、JSON として解析する必要があります。

response = JSON.parse(response);
console.log(response.graduate);

あるいは、use$.getJSONまたは passdataType : "JSON"を指定すると、jQuery が解析を行います。

于 2013-12-29T03:33:56.713 に答える
0

ajaxOption を追加する

ajaxOptions: {
dataType: 'json'
}
于 2013-12-29T03:33:45.660 に答える