Di solito l'API dovrebbe accettare un String
oppure byte[]
in modo da non dover convertire. Forse vuoi CreateIndexRequestBuilder#addMapping(String, String)
?
Se davvero, davvero, davvero vuoi un XContentBuilder
puoi creare un XContentParser
e copiare il contenuto in un costruttore. Come di elasticsearch 5.2 questo dovrebbe farlo:
String message = "{\"test\":\"test\"}";
XContentBuilder b = XContentFactory.jsonBuilder().prettyPrint();
try (XContentParser p = XContentFactory.xContent(XContentType.JSON).createParser(NamedXContentRegistry.EMPTY, message)) {
b.copyCurrentStructure(p);
}
System.err.println(b.string());
Si potrebbe forse anche fare qualcosa di con cruda, ma non credo che ne vale la pena.
Pre 5.2 non è necessaria la parte NamedXContentRegistry.EMPTY,
.
il valore XContentFactory.jsonBuilder(). (Mapping) non funziona come previsto poiché ottengo un oggetto senza radice. Sospetto che sia ancora necessario aggiungere un .startObject()? – tbo