在API中使用Postman时接收到空的json文件

时间:2019-05-28 10:36:27

标签: java postman

我是使用API​​和JSON文件进行开发的新手,所以请耐心等待。我正在尝试在Java中实现Rest API,在其中我需要将Post请求发送到URL进行处理,但是当我在localhost中尝试时,结果是我收到的只是空的Json文件。

我正在使用org.json.simple.JSONObject的依赖关系,但是我需要将依赖关系更改为org.json.JSONObject。我知道它们是两个不同的库,这就是为什么我有点卡住的原因。我在论坛和互联网上进行了搜索,但没有找到解决自己问题的解决方案。如果可能的话,我还想问一问是否有一种将String转换为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文件,其中显示了对值进行的处理。

0 个答案:

没有答案