I want remove key and value for ProductCharacteristic ->name. How it can be done in Java and how to fix this error? type org.json.JSONArray cannot be converted to JSONObject
This is my JSON file:
[
{
"id": "0028167072_CO_FIX_INTTV_1008_P3909_IDX0",
"status": "Active",
"startDate": "2023-02-12T22:00:00Z",
"place": [
{
"id": "8",
"apartment": "578",
"role": "QA",
"@referredType": "street"
}
],
"ProductCharacteristic": [
{
"id": "CH_100473",
"valueId": "CH12_1000374_VALUE04141",
"value": "LTS",
"name": "Computer"
}
]
}
]
I tried this code:
public static void main(String[] args) {
// Replace with your actual JSON string of load JSON from file
String jsonString = "json above";
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray productCharacteristics = jsonObject.getJSONArray("ProductCharacteristic");
// Iterate through each "ProductCharacteristic" object and remove the "name"
// key-value pair
for (int i = 0; i < productCharacteristics.length(); i++) {
JSONObject productCharacteristic = productCharacteristics.getJSONObject(i);
productCharacteristic.remove("name");
}
String updatedJsonString = jsonObject.toString();
System.out.println("Modified JSON:\n" + updatedJsonString);
}
But this code is not working,I have error message:org.json.JSONArray cannot be converted to JSONObject
Your json is an array, not object - [...]
denotes an array, {...}
denotes an object. Json specification:
An array is an ordered collection of values. An array begins with [left bracket and ends with ]right bracket.
You need to parse to an array and work with it:
JSONArray jsonArray = new JSONArray(jsonString);
//get first, since the array contains only 1 element
JSONArray productCharacteristics = jsonArray.getJSONObject(0).getJSONArray("ProductCharacteristic");