从JSON请求中删除简单对象



我编写了一小段代码来验证当请求的某些部分被删除时请求是否失败。我想删除product元素和它的值。

这是请求

{
    "product": "tv",
    "price": "45",
    "payment": {
        "credit_card": {
            "number": "1234567891234567",
            "type": "Visa",
            "expire_month": 10,
            "expire_year": 2019,
            "cvv2": 999,
            "first_name": "John",
            "last_name": "Smith"
        }
    }
}

这是代码片段-

        JSONParser parser = new JSONParser();
        String requestFile = System.getProperty("user.dir") + "/src/test/resources/request/request.json";
        logger.info("Loading request file: " + requestFile);
        Object obj = parser.parse(new FileReader(requestFile));
        JSONObject jsonObject = (JSONObject) obj;        
        //fails on the below line saying Java.lang.String cannot be cast to org.json.simple.JSONObject
       // What's the alternative?
        logger.info("printing json object "+jsonObject.get("product"));
        jsonObject = (JSONObject) jsonObject.remove("product");
        System.out.println("Now the request is "+jsonObject);

我能够解决这个问题。下面是修改后的代码片段:

JSONParser parser = new JSONParser();
        String requestFile = System.getProperty("user.dir") + "/src/test/resources/request/original_request.json";
        logger.info("Loading request file: " + requestFile);
        Object obj = parser.parse(new FileReader(requestFile));
        Object jsonObject = (JSONObject) obj;
        //remove product_name
         ((HashMap) jsonObject).remove("product");
        logger.info("New request "+jsonObject);

最新更新