2016-03-02 56 views
0

我正在返回json,如下所示如何訪問JSON對象值?

o/p of console.log(obj.roles);

[Object, Object, suggest: function, vanquish: function] 
0: Object 
     jnl_id: "2" 
     jnl_journal_name: "About Origin of speci" 
     role_id: "5" 
     role_name: "Technical Head" 
     usr_id: "7" 
     usr_username: "dd" 
     usrj_jnl_id: "2" 
     usrj_usr_id: "7" 
     __proto__: Object 
1: Object 
     jnl_id: "2" 
     jnl_journal_name: "About Origin of speci" 
     role_id: "10" 
     role_name: "EBM - Reviewer" 
     usr_id: "7" 
     usr_username: "dd" 
     usrj_jnl_id: "2" 
     usrj_usr_id: "7" 
     __proto__: Object 
     length: 2 
     __proto__: Array[0] 

Ajax的功能是datatype : json

success:function (data) {     
    obj = $.parseJSON(data); 

    if(obj.status == "success"){ 
     console.log(obj.roles); 

     $.each(obj.roles, function (index, value) { 

      console.log(value.roles_id);//output undefined 
      $("#journal_user_role").append($("<option>", { 
       value: value.roles_id, 
       text: value.roles 
      })); 
      $("#journal_user_role").trigger("chosen:updated"); 
     }); 
    } 
} 

我想找到role_idrole_name並追加上多選擇框。

+0

不要再解析它如果是'type json',你可以顯示什麼是'console.log(data)' – guradio

+0

@guradio當我檢查'data'的值是解析,{「status」:「success」,「角色「:[{」role_name「:」Technical Head「,」role_id「:」5「,」usr_username「:」aa「,」jnl_journal_name「:」關於speci的起源「,」usrj_usr_id「:」1「,」usrj_jnl_id 「:」2「,」usr_id「:」1「,」jnl_id「:」2「},{」role_name「:」EBM - 評論者「,」角色ID「:」10「,」usr_username「:」aa「, 「jnl_journal_name」:「關於speci的起源」,「usrj_usr_id」:「1」,「usrj_jnl_id」:「2」,「usr_id」:「1」,「jnl_id」:「2」}]},但是我可以'找到--->「data.status」和「data.roles」值。 – Ann

+0

如果你設置dataType:'json'它會自動解析你的結果你是否得到你期望的數據?我認爲你的數據的價值超過評論^ – guradio

回答

0

var data = { 
 
\t "status": "success", 
 
\t "roles": [{ 
 
\t \t "role_name": "Technical Head", 
 
\t \t "role_id": "5", 
 
\t \t "usr_username": "dd", 
 
\t \t "jnl_journal_name": "About Origin of speci", 
 
\t \t "usrj_usr_id": "7", 
 
\t \t "usrj_jnl_id": "2", 
 
\t \t "usr_id": "7", 
 
\t \t "jnl_id": "2" 
 
\t }, { 
 
\t \t "role_name": "EBM - Reviewer", 
 
\t \t "role_id": "10", 
 
\t \t "usr_username": "dd", 
 
\t \t "jnl_journal_name": "About Origin of speci", 
 
\t \t "usrj_usr_id": "7", 
 
\t \t "usrj_jnl_id": "2", 
 
\t \t "usr_id": "7", 
 
\t \t "jnl_id": "2" 
 
\t }] 
 
}; 
 
var dataroles = data.roles; 
 
console.log("status: " + data.status); 
 
for(var i = 0 ; i < dataroles.length; i++){ 
 
    
 
    console.log("role_id "+ i +": "+ dataroles[i].role_id); 
 
    console.log("role_name "+ i +": "+ dataroles[i].role_name); 
 
    }

試試這個

+0

console.log(data.status)和(data .roles)未定義 – Ann

+0

這就是爲什麼我試圖解析數據,obj = $ .parseJSON(data); ...然後我試着console.log(obj.status),我得到了「成功」... – Ann

+0

再次檢查我展示出 角色是你需要通過它們循環的另一個對象的狀態,你可以檢查角色ID和角色名稱的值我向他們展示 – guradio

0

嘗試使用值 'roles_id']的代替value.roles_id .....