如何控制要在Json对象中显示的键

时间:2014-03-12 10:30:58

标签: json node.js couchbase

我正在使用以下NodeJs代码来获取JsonObject:

cdb.getMulti(['emp1','emp2'],null, function(err, rows) {
    var resp = {};
    for(index in rows){ 
        resp[index] = rows[index];
    }
    res.send(resp);
});

获取输出:

{
"emp1": {
"cas": {
"0": 637861888,
"1": 967242753
},
"flags": 0,
"value": {
"eid": "10",
"ename": "ameen",
"gender": "male",
"designation": "manager",
"country": "Singapur",
"reportee": "Suresh",
"salary": 50000,
"picture": "ameen.jpg"
}
},
"emp2": {
"cas": {
"0": 721747968,
"1": 430939000
},
"flags": 0,
"value": {
"eid": "2",
"ename": "shanmugapriya",
"gender": "female",
"designation": "programmer",
"country": "England",
"reportee": "shruti",
"salary": 14250,
"picture": "priya.jpg"
}
}
}

我想要做的是,我只想显示值键。任何人都可以帮我解决这个问题。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你的意思是你想只显示价值和关键字吗?如果是这样,下面的代码将只将值放入结果

cdb.getMulti(['emp1','emp2'],null, function(err, rows) {
    var resp = {};
    for(index in rows){ 
        resp[index] = rows[index].value;
    }
    res.send(resp);
});

结果回复

{
  "emp1":{
    "eid":"10",
    "ename":"ameen",
    "gender":"male",
    "designation":"manager",
    "country":"Singapur",
    "reportee":"Suresh",
    "salary":50000,
    "picture":"ameen.jpg"
  },
  "emp2":{
    "eid":"2",
    "ename":"shanmugapriya",
    "gender":"female",
    "designation":"programmer",
    "country":"England",
    "reportee":"shruti",
    "salary":14250,
    "picture":"priya.jpg"
  }
}

更新:您的问题非常模糊。我想你需要在这里使用Couchbase Views。文档http://docs.couchbase.com/couchbase-sdk-node-1.2/#querying-a-view。假设您将使用以下_design/employees/_view/all函数构建视图map

function(doc, meta) {
   emit(meta.id, doc);
}

您的node.js代码将如下所示

var view = bucket.view('employees', 'all');
view.query(function(err, results) {
  res.send(results);
});