2016-03-02 59 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 .....