我有一个通过node.js客户端访问的elasticsearch数据库。我可以解析来自elasticsearch的JSON来打印出如下所示的hitsArray:
[ { _index: 'parties',
_type: 'suppliers',
_id: 'AV0uELknL82XeGsCOZ-i',
_score: 1,
_source: { name: 'Jabil', address: [Object], rating: 4.2 } },
{ _index: 'parties',
_type: 'suppliers',
_id: 'AV0t_yC3L82XeGsCOZ-f',
_score: 1,
_source: { name: 'Apple', address: [Object], rating: 4.9 } },
{ _index: 'parties',
_type: 'suppliers',
_id: 'AV0t_glkL82XeGsCOZ-d',
_score: 1,
_source: { name: 'Flextronics', address: [Object], rating: 4.5 } },
{ _index: 'parties',
_type: 'suppliers',
_id: 'AV0t_ox7L82XeGsCOZ-e',
_score: 1,
_source: { name: 'FlashMob', address: [Object], rating: 3.5 } } ]现在,我想解析_source字段并打印出name字段
client.search(searchParams).then(function (resp) {
return Promise.all(resp.hits.hits)
}).then(function(hitsArray){
hitsArray.forEach(function(value){
JSONObject first = hitsArray.getJSONObject(value);
JSONObject source = first.getJSONObject("_source");
String name = source.getString("name");
console.log(name);
});
});但是我得到了一个错误
JSONObject first = hitsArray.getJSONObject(value);
^^^^^
SyntaxError: Unexpected identifier我遗漏了什么?有什么建议吗?
发布于 2017-07-11 13:24:48
JavaScript没有这样的显式类型定义。看起来这3行可能是Java代码,而不是JavaScript代码。
就获取实际的JavaScript值而言,它似乎已经是一个对象。只需使用value._source (和value._source.name)访问即可。
https://stackoverflow.com/questions/45025954
复制相似问题