Как преобразовать JSON в String, чтобы его можно было использовать в качестве полезной нагрузки службы - PullRequest
1 голос
/ 20 июня 2019

Я занимаюсь разработкой веб-службы с использованием 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.

1 Ответ

1 голос
/ 21 июня 2019

OP проблема была решена при использовании toString() метод JsonNode.

...