gpt4 book ai didi

json - AWS 云搜索 : The value of [fieldname] cannot be a JSON array or object

转载 作者:搜寻专家 更新时间:2023-11-01 00:18:12 25 4
gpt4 key购买 nike

我在处理 int 数组类型的字段时遇到了这个问题。使用适用于 Node.js 的 aws-sdk,我正在通过 CloudSearchDomain.uploadDocuments() 方法提交文档。文档的 JSON(在 searchContent 变量中)是在 Node 进程中创建的,然后我使用:

var params = {
contentType: 'application/json',
documents: JSON.stringify([searchContent])
};
csd.uploadDocuments(params, function(err, data){
...(callback process)...
});

非字符串化的 searchContent 对象如下所示:

{ id: 1,
type: 'Product',
hash_type_id: 'Product-1',
name: 'Test product',
description: 'A test product',
category: [ 2 ],
content: '<some text here>',
state: [ 1 ],
hash_all: '<some text>'
}

并像这样字符串化:

[{"id":1,"type":"Product","hash_type_id":"Product-1","name":"Test product","description":"A test product","content":" <some text>","category":[2],"state":[1],"hash_all":"<some text>"}]

我得到的错误是:

{
"message": "{ [\"The value of category cannot be a JSON array or object\"] }",
"code": "DocumentServiceException",
"time": "2014-11-20T01:24:27.499Z",
"statusCode": 400,
"retryable": false
}

如前所述,category字段是int数组类型。为什么我会收到这条消息?

更新:我也尝试过对类别字段使用类型化数组 (Int16Array),结果完全相同。

最佳答案

文档需要在批处理参数中进行包裹。在一个批处理中,每个文件需要有这样的格式:

{
type: "add|update|delete",
id: "Unique ID",
fields: Document JSON here
}

这需要在一个数组中,即使它只是一个文档。因此问题中文档的 JSON 变为:

{
type: "add",
id: "Product-1",
fields: { id: 1,
type: 'Product',
hash_type_id: 'Product-1',
name: 'Test product',
description: 'A test product',
category: [ 2 ],
content: '<some text here>',
state: [ 1 ],
hash_all: '<some text>'
}
}

关于json - AWS 云搜索 : The value of [fieldname] cannot be a JSON array or object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27030317/

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