Я хочу вставить некоторые записи, используя запрос PUT.У меня есть строка JSON и объект Java Pojo тела запроса.
Для запроса PUT эластичного поиска необходимо, чтобы данные тела в указанном ниже формате были установлены как сущность.Может кто-нибудь предложить, как мне преобразовать мою строку JSON в этот формат?
"{\n" +
"\"user\" : \"kimchy\",\n" +
"\"post_date\" : \"2009-11-15T14:12:12\",\n" +
"\"message\" : \"trying out Elasticsearch\"\n" +"}"
или, пожалуйста, предложить альтернативный хороший подход для выполнения этой задачи.
Вот код для остального клиента.RequestBody является экземпляром объекта запроса.Я переопределил метод toString (), чтобы упорядочить параметры запроса для правильного синтаксиса JSON в классе RequestBody.
RestClient restClient = RestClient.builder(
new HttpHost(DataFeederConstants.HTTP_HOST, DataFeederConstants.PORT, DataFeederConstants.PROTOCOL))
.build();
Request request = new Request(DataFeederConstants.PUT, DataFeederConstants.END_POINT_URL);
request.setEntity(new NStringEntity(requestBody.toString(), ContentType.APPLICATION_JSON));
request.setEntity(new NStringEntity(DataFeederConstants.JSON_ENTITY_NAME, ContentType.APPLICATION_JSON));
restClient.performRequestAsync(request, new ResponseListener() {
@Override
public void onSuccess(Response response) {
try {
System.out.println(EntityUtils.toString(response.getEntity()));
} catch (ParseException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onFailure(Exception exception) {
System.out.println(exception.getMessage());
}
});
Тело ввода (requestBody.toString ()) имеет форму правильного массива JSON без ("\") косая черта, как показано в примере JSON выше.