我使用的是弹性搜索6.2.2。这就是我将json字符串转换为Xcontentbuilder的方法。
XContentBuilder builder = JsonXContent.contentBuilder().prettyPrint();
XContentParser parser = JsonXContent.jsonXContent.createParser(NamedXContentRegistry.EMPTY, jsonObj.toString());
builder.copyCurrentStructure(parser);
我工作得很好,直到我更新了elasticsearch 6.3+。ES 6.3+上存在错误,代码相同。
描述资源路径位置类型方法中的createParser(NamedXContentRegistry、DeprecationHandler、String(JsonXContent类型不适用于参数(NamedXContentRegistry,字符串(test.java
编译错误已调用:您的createParser
错过了一个DeprecationHandler
参数。
因此,您应该设置DeprecationHandler
,例如:
JsonXContent.jsonXContent.createParser(NamedXContentRegistry.EMPTY,
LoggingDeprecationHandler.INSTANCE,
jsonObj.toString());