gpt4 book ai didi

javascript - elasticsearch 自动建议返回棘手的 JSON

转载 作者:行者123 更新时间:2023-12-03 06:50:12 26 4
gpt4 key购买 nike

我正在运行一个node.js 服务器,它将查询发送到elasticsearch 实例。以下是查询返回的 JSON 示例:

{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 9290,
"max_score": 0,
"hits": []
},
"suggest": {
"postSuggest": [
{
"text": "a",
"offset": 0,
"length": 1,
"options": [
{
"text": "Academic Librarian",
"score": 2
},
{
"text": "Able Seamen",
"score": 1
},
{
"text": "Academic Dean",
"score": 1
},
{
"text": "Academic Deans-Registrar",
"score": 1
},
{
"text": "Accessory Designer",
"score": 1
}
]
}
]
}
}

我需要创建一个数组,其中包含每个职位名称作为字符串。我遇到了这种奇怪的行为,我无法弄清楚。每当我尝试从 JSON 中提取值时,我都无法低于 options ,否则所有内容都会返回为未定义。

例如:

arr.push(results.suggest.postSuggest) 将推送您所期望的内容:postSuggest 中的所有内容。

arr.push(results.suggest.postSuggest.options) 将显示为未定义,即使我在没有 .options 的情况下运行它时可以看到它。对于 .options 以下的任何内容也是如此。

我认为这可能是因为 .options 是某种作用于变量的内置函数,因此不要将选项视为 JSON,而是尝试在 上运行函数results.suggest.postSuggest

最佳答案

arr.push(results.suggest.postSuggest.options)

postSuggest 是一个对象数组。postSuggest 中的options 也是一个对象数组。所以首先你需要通过 postSuggest[0] 获取 postSuggest,然后postSuggest[0].options 获取 options

数组

下面的代码片段很有用

 var myObj = {..}
// used jquery just to demonstrate postSuggest is an Array
console.log($.isArray(myObj.suggest.postSuggest)) //return true
var getPostSuggest =myObj.suggest.postSuggest //Array of object
var getOptions = getPostSuggest[0].options; // 0 since it contain only one element
console.log(getOptions.length) ; // 5 , contain 5 objects
getOptions.forEach(function(item){
document.write("<pre>Score is "+ item.score + " Text</pre>")
})

Jsfiddle

关于javascript - elasticsearch 自动建议返回棘手的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37536763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com