我编写了一个小代码来验证我的请求在删除部分内容时失败。我想删除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);
答案 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);