我正在开发一个前端和后端分开的网站。我使用jquery发送请求并将结果作为json对象获取:
{
"item": [
],
"shop": [
],
"user": [
{
"user_id": "9",
"full_name": "Minh Duc",
"email": "nguyenminhduc1803@gmail.com",
"fb_link": "https:\/\/www.facebook.com\/SieuNhan183",
"user_name": "Duc",
"password": "37cd769165eef9ba6ac6b4a0fdb7ef36",
"level": "0",
"admin": "0",
"dob": "1996-03-18",
"location": "Ho Chi Minh",
"user_image_url": null
}
]
}
现在我找到了一种从对象用户那里获取数据的方法。我怎么能用javascript做到这一点?
答案 0 :(得分:3)
补充@arcs的答案,请记住,在Javascript中,您可以使用点表示法(data.user[0].user_id
)或方括号表示法访问对象的成员。这样:
data['user'][0]['user_id']
这很有用,因为你可以拥有一个'class'数组,然后执行以下操作:
['item', 'shop', 'user'].forEach((array) => processArray(data[array][0]));
然后你可以只过滤一些类或做更高级的东西
答案 1 :(得分:2)
当你有数据时(例如它在data
中),使用点符号来获取用户的节点。
用户是一个数组,因此请使用[]
访问单个元素,例如[0]
var data = {
"item": [
],
"shop": [
],
"user": [
{
"user_id": "9",
"full_name": "Minh Duc",
"email": "nguyenminhduc1803@gmail.com",
"fb_link": "https:\/\/www.facebook.com\/SieuNhan183",
"user_name": "Duc",
"password": "37cd769165eef9ba6ac6b4a0fdb7ef36",
"level": "0",
"admin": "0",
"dob": "1996-03-18",
"location": "Ho Chi Minh",
"user_image_url": null
}
]
}
console.log( data.user[0].user_id )
答案 2 :(得分:0)
我更喜欢使用这样的方括号:
$jsonObject["user"][0]["user_id"]
但您可以像这样使用点:
data.user[0].user_id
是一回事。
如果你想检查属性是否存在,你可以这样做:
if(typeof $jsonObject["user"] !== 'undefined'){
//do domethings as typeof $jsonObject["user"][0]["user_id"]
}
如果你想通过dinamically获得财产,你可以这样做:
const strId = "id";
const strName = "name";
//get user_id
let user_id = $jsonObject[user][0]["user_" + strId ];
//get user_name
let user_name = $jsonObject[user][0]["user_" + strName];
但是并不是很漂亮。