没有未定义的结果,无法定位JSON对象

时间:2018-04-12 01:39:13

标签: jquery json ajax object

我有通过ajax提取的JSON编码数据,我试图通过jQuery访问数据并填充一些字段,但由于某种原因我不断收到错误data.entry_data is undefined

JSON数据结构:

{
   "activity_counts":null,
   "config":{
      "csrf_token":"56gdf75fd6756g7",
      "viewer":null
   },
   "supports_es6":false,
   "country_code":"NL",
   "language_code":"en",
   "locale":"en_US",
   "entry_data":{
      "ProfileData":[
         {
            "logging_page_id":"profilePage_2321",
            "show_suggested_profiles":false,
            "userspecific":{
               "user":{
                  "full_name":"John Doe",
                  "username":"JohnDoe1",
                  "country":"United States"
               }
            }
         }
      ]
   }
}

我的jQuery代码:

$.ajax({
    type: "POST",
    url: "engine.php",
    data: $("#profile-info-form").serialize(),
    dataType: 'json',
    success: function(data){
        $profile_full_name = data.entry_data.ProfileData.userspecific.user.full_name;
        $profile_country = data.entry_data.ProfileData.userspecific.user.country;
        $profile_username = data.entry_data.ProfileData.userspecific.user.username;
    },
    error: function(){
        profileError();
    }
});

我也尝试使用data[0]例如$profile_full_name = data[0].entry_data.ProfileData.userspecific.user.full_name;但没有成功,因为它显示了相同的未定义错误。

我正在困扰我好几天,现在试图弄清楚在针对JSON对象时我做错了什么,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果成功回调中返回的数据实际上是上面粘贴的JSON结构,则After 1000000 $1 deposits using 'atomic': - balance = 1000000.00, - total time = 0.421999931335, - average time per deposit = 0.000000422000 After 1000000 $1 deposits using 'critical': - balance = 0.00, - total time = 0.265000104904, - average time per deposit = 0.000000265000 不应该是未定义的。应该没有问题。

问题在于访问data.entry_data属性,因为userspecific是一个数组。

尝试更改此部分:ProfileDatadata.entry_data.ProfileData.userspecific

请参阅此小提琴以获取示例:https://jsfiddle.net/mom5gw2q/7/