版本: 7.1-8.9
简而言之,当 Elasticsearch 期望 JSON 对象以起始标记(用 ‘{’ 表示)开始,但遇到了不同的标记时,就会发生此错误。这通常发生在 JSON 输入格式不正确或错误的情况下。要解决此问题,您可以:1)检查 JSON 输入是否存在语法错误,确保它以 ‘{’ 开始并以 ‘}’ 结束;2)使用 JSON 验证工具验证 JSON 输入;3)确保在请求头中设置了正确的内容类型;4)如果您使用文件作为输入,确保其格式正确并被正确引用。
日志上下文 #
日志 “expected START_OBJECT as the token but was” 的类名是 IndicesOptions.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
Boolean ignoreUnavailable = defaults == null ? null : defaults.ignoreUnavailable();
boolean ignoreThrottled = defaults == null ? false : defaults.ignoreThrottled();
Token token = parser.currentToken() == Token.START_OBJECT ? parser.currentToken() : parser.nextToken();
String currentFieldName = null;
if (token != Token.START_OBJECT) {
throw new ElasticsearchParseException("expected START_OBJECT as the token but was " + token);
}
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
if (token == XContentParser.Token.FIELD_NAME) {
currentFieldName = parser.currentName();
} else if (token == Token.START_ARRAY) {





