我正在发出一个http请求,然后我从SQL表中获取值。
router.get('/', function(req, res, next) {
controller.getAllPosts( function(err,posts){
if(err){
res.status(500);
res.end();
}else{
res.json(posts);
}
我得到的回答是这样的:
[
{
"id_post": 1,
"description": "Hola",
"username": "jumavipe",
"image": "1.jpg"
},
{
"id_post": 2,
"description": "no se",
"username": "jacksonjao",
"image": "2.jpg"
},
{
"id_post": 3,
"description": "nuevo tatuaje de bla bla bla",
"username": "jumavipe",
"image": "3.jpg"
}
]
我如何只获得第3篇中的描述
我无法做到:
var desc= posts[2].description
我在线查看,我尝试过这样的事情:
var description = posts.getJSONObject("LabelData").getString("description");
如果我的json数组没有密钥,我应该在getJSONObject()
中作为参数使用什么。
我无法找到有用的东西。如何从json数组中的一个对象获取该值?
答案 0 :(得分:1)
Array.prototype.find
如果您没有任何浏览器兼容性问题,可以使用Array.prototype.find
var posts = [
{
"id_post": 1,
"description": "Hola",
"username": "jumavipe",
"image": "1.jpg"
},
{
"id_post": 2,
"description": "no se",
"username": "jacksonjao",
"image": "2.jpg"
},
{
"id_post": 3,
"description": "nuevo tatuaje de bla bla bla",
"username": "jumavipe",
"image": "3.jpg"
}
];
var post = posts.find(function(item) {
return item.id_post == 3;
});
console.log(post.description);
Array.prototype.filter
Array.prototype.filter
,它会起作用。
var selected_posts = posts.filter(function(item) {
return item.id_post == 3;
});
console.log(selected_posts[0].description);