从JSON请求中删除简单对象

时间:2015-08-05 12:48:12

标签: java 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);

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题。 以下是对其进行更改后的代码段。

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);