Получение пустого файла json при использовании Postman в API - PullRequest
0 голосов
/ 28 мая 2019

Я новичок в разработке, использую API и JSON-файл, так что наберитесь терпения. Я пытаюсь реализовать Rest API в Java, где мне нужно отправить запрос Post на URL-адрес для обработки, но когда я попробовал его в моем localhost, в результате я получаю просто пустой файл Json.

Я использовал зависимость от org.json.simple.JSONObject, но мне нужно изменить зависимость на org.json.JSONObject. Я знаю, что это две разные библиотеки, и поэтому я немного застрял. Я посмотрел на форуме и в Интернете, но я не нашел решения для моей собственной проблемы. Если это возможно, я также хочу спросить, есть ли способ преобразовать строку в JSON.

Вот основной класс.

public class DataService {

    public static JSONObject processData(JSONObject jsonObject) {
        System.out.println(jsonObject);
        System.out.println(jsonObject.toString());
        ObjectMapper mapper = new ObjectMapper();
        mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
        Data data = new Data();

        try {
            data = mapper.readValue(jsonObject.toString(), Data.class);
        } catch (IOException e) {
            e.printStackTrace();
        }

        List<DataJson> timeserie = data.getData();
        List<Double> values = new ArrayList<Double>();
        DataJson inter;
        for (int i = 0; i<timeserie.size(); i++){
            inter = timeserie.get(i);
            values.add(inter.getValue());
        }
        int EmbeddingDimension;

        EmbeddingDimension = data.getEmbeddingDimension();
        data.setResult(DynamicProperties.PermEn(values, EmbeddingDimension));


        String url = "http://localhost:8080/crosscpp/toolbox/test";
        OkHttpClient client = new OkHttpClient();
        ObjectMapper objectMapper = new ObjectMapper();
        RequestBody body = null;
        try {
            body = RequestBody.create(
                    MediaType.parse("application/json; charset=utf-8"), objectMapper.writeValueAsString(data));
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .build();
        Call call = client.newCall(request);
        try {
            Response response = call.execute();
            String result = response.body().string();
            JSONObject json = null;
            /*JSONParser parser = new JSONParser();
            JSONObject json = null;
            try {
                json = (JSONObject) parser.parse(result);
            } catch (ParseException e) {
                e.printStackTrace();
            }*/  //Look for another solution.
            return json;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

Файл Json, который я отправлю.

{
    "inputAeonSubscriptionUrl": "xxxx",
    "outputAeonPublicationUrl": "xxxx",
    "EmbeddingDimension": 3,
    "offerId": "xxxxxx",
    "measurement-channel-id": "1",
    "id": "xxxxxx",
    "submissionDate": {
        "min": "2019-04-09",
        "max": "2019-05-07"
    },
    "travelDates": {
        "min": "2019-05-13",
        "max": "2019-05-17"
    },
    "travelledDuration": {
        "min": 1,
        "max": 2
    },
    "geoBoundingBox": {
        "latitude-max": 51.507561,
        "latitude-min": 51.497715,
        "longitude-min": 7.482349,
        "longitude-max": 7.500885
    },
    "data": [
        {
            "value": 1,
            "timestamp": "2019-04-09"
        },
        {
            "value": 3,
            "timestamp": "2019-04-09"
        },
        {
            "value": 2,
            "timestamp": "2019-04-09"
        },
        {
            "value": 1,
            "timestamp": "2019-04-09"
        },
        {
            "value": 2,
            "timestamp": "2019-04-10"
        },
        {
            "value": 3,
            "timestamp": "2019-04-10"
        },
        {
            "value": 2,
            "timestamp": "2019-04-10"
        }
    ]
}

Я ожидаю результата, когда он отправляет обратно полученный файл JSON с добавленным атрибутом, где он показывает процесс, выполненный для значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...