How to remove null keys from JSON Object

I have the below JSON , i need to remove all the keys which have null value

I have tried this

import java.util.Iterator;
import org.json.JSONException;
import org.json.JSONObject;
public class Remove {
    public static void main(String[] args) throws JSONException {
    String str = "{rn" + 
            "       "videos": {rn" + 
            "       }}";
        JSONObject json_obj = new JSONObject(str);
        JSONObject allKeys_json=    json_obj.getJSONObject("videos");
        Iterator<String> keys = allKeys_json.keys();
        while( keys.hasNext() ) {
        String keyanme = (String);
        String keyvalue = allKeys_json.getString(keyanme);

but the actual json is unaffected , could you please tell me how to do this .


If it’s only about manipulating a string which structure you know well a solution would be to use some regex

str.replaceAll(".*": null(,)?\r\n", "");

It could be easier to find a good regex than to invest time in building a model that could be used by Jackson.

Three notes:

  • the code above doesn’t figure out which is the last line and adapt the json accordingly.

  • the pattern should be compiled separately.

  • org.json is very inefficient compared to Jackson.

Leave a Reply

Your email address will not be published. Required fields are marked *