我有通过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对象时我做错了什么,非常感谢任何帮助。
答案 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
是一个数组。
尝试更改此部分:ProfileData
至data.entry_data.ProfileData.userspecific
。
请参阅此小提琴以获取示例:https://jsfiddle.net/mom5gw2q/7/