Я занимаюсь разработкой веб-службы с использованием drop-wizard, который использует Jackson for JSON, который принимает данные в формате JSON (документ в ES), которые мне нужно передать в ES для индексации.Поскольку это большой JSON, в настоящее время у меня нет соответствующего JAVA POJO, и я не (де) сериализую его, скорее я бы напрямую отправил его в Elastic-search (ES) api, которому также нужны данные в формате JSON.
Но теперь я звоню клиенту высокого уровня Java для индексирования документа, который требует преобразования этого JSON в формат String в соответствии с предоставленным примером кода https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.1/java-rest-high-document-index.html
IndexRequest request = new IndexRequest("posts");
request.id("1");
String jsonString = "{" +
"\"user\":\"kimchy\"," +
"\"postDate\":\"2013-01-30\"," +
"\"message\":\"trying out Elasticsearch\"" +
"}";
request.source(jsonString, XContentType.JSON);
Сейчаспоскольку у меня уже есть JSON , приходящий на мой ресурс веб-службы, все, что мне нужно, это преобразовать его в String и вызвать службу, но я не могу сделать это правильно.
Код моего ресурса
@POST
@Path("{id}")
public Response create(@PathParam ("id") String id, @NotNull JsonNode json){
try {
service.add(id,json);
URI uri = new URI(id);
return Response.created(uri).build();
}catch (Exception e){
log.error("Error indexing doc", e);
}
}
И код моего обслуживания
String jsonStr = json.textValue();
Пожалуйста, помогите мне какЯ noob в разборе JSON, и в основном мое требование - просто преобразовать JSON, который пришел к моему ресурсу Джерси, в String.