ElasticSearchにJSONを送信しようとしています。PostmanとSOAPUIを使用してみました。データは
[{"column1": "abc", "column2": "def", "column3": "dghi", "column4": "jkl", "column5": "mno"}, {"column1": "pqr", "column2": "stu", "column3": "vwx", "column4": "", "column5": ""}]
次のエラーが返されます
{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "failed to parse"
}
],
"type": "mapper_parsing_exception",
"reason": "failed to parse",
"caused_by": {
"type": "not_x_content_exception",
"reason": "Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes"
}
},
"status": 400
}
しかし、単一のJSON配列を投稿すると、
{"column1": "abc", "column2": "def", "column3": "dghi", "column4": "jkl", "column5": "mno"}
その後、正常に動作します。ElasticSearch は初めてなので、何が問題なのかわかりません。
ベストアンサー1
まず中括弧を使用してから配列に名前を付けてみてください。試してみて、動作するかどうかを確認してください。
例えば:
{root:[1, 2, 3, 4, 5]}
オブジェクト内に含まれているため機能する可能性があります。
さらに良いことに、 を試していたところJSON.stringify();
、配列を次のように JSON に変換できることが分かりました。
{1, 2, 3, 4, 5}