Как преобразовать JSON строку из ответа API в симпатичный формат вместо однострочного и вывести в текстовый файл? Использование Java библиотеки Джерси API - PullRequest
0 голосов
/ 17 апреля 2020

Я вызываю конечную точку внешней системы, и она возвращает в ответе строку JSON. У меня нет контроля над внешней системой. Я вывожу строку JSON в файл, но она сохраняет все в одной строке. Как я могу преобразовать строку JSON в симпатичный формат с разрывами строки, возвратом каретки и всем прочим, а затем сохранить ее в текстовом файле? Могу ли я поручить преобразовать его на лету в симпатичный формат в запросе API?

Используя Java и библиотеку API Джерси для вызова конечной точки.

JSON Образец строки

Вместо вывода этого в текстовый файл:

{"employees":[ {"name":"Shyam", "email":"shyamjaiswal@gmail.com"},  {"name":"Bob", "email":"bob32@gmail.com"},  {"name":"Jai", "email":"jai87@gmail.com"} ]}

Я хочу, чтобы это выглядело так в текстовом файле:

{
   "employees": [
      {
         "name": "Shyam",
         "email": "shyamjaiswal@gmail.com"
      },
      {
         "name": "Bob",
         "email": "bob32@gmail.com"
      },
      {
         "name": "Jai",
         "email": "jai87@gmail.com"
      }
   ]
}

Пример кода

import java.io.FileNotFoundException;
import java.io.PrintWriter;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class JerseyAPISampleTest {

    public static void main(String[] args) throws FileNotFoundException {

        String endpointURL = "https://externalsystem.example.com/api/getExampleData/";

        Client client = Client.create();
        WebResource webResource = client.resource(endpointURL);

        ClientResponse clientResponse = (ClientResponse)webResource.accept(new String[]{"application/json"}).get(ClientResponse.class);

        if (clientResponse.getStatus() != 200) {
            throw new RuntimeException("Failed : HTTP error code : " + clientResponse.getStatus());
        }

        String responseDataJSON = (String)clientResponse.getEntity(String.class);

        PrintWriter printWriter = new PrintWriter("Example-Data.json");
        printWriter.print(responseDataJSON);
        printWriter.flush();
        printWriter.close();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...