JsonParser is deprecated

Issue

Getting deprecated message for JsonParser for Spring Boot app,

JsonObject jsonObject = new JsonParser().parse(result).getAsJsonObject();

What is the alternative?

Solution

Based on the javadoc for Gson 2.8.6

No need to instantiate this class, use the static methods instead.

and following are the alternatives to be used.

// jsonString is of type java.lang.String
JsonObject jsonObject = JsonParser.parseString​(jsonString).getAsJsonObject();

// reader is of type java.io.Reader
JsonObject jsonObject = JsonParser.parseReader​(reader).getAsJsonObject();

// jsonReader is of type com.google.gson.stream.JsonReader
JsonObject jsonObject = JsonParser.parseReader​(jsonReader).getAsJsonObject();

Example

import static org.junit.Assert.assertTrue;

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Test {

    public static void main(String[] args) {
        String jsonString = "{ \"name\":\"John\"}";

        JsonObject jsonObjectAlt = JsonParser.parseString(jsonString).getAsJsonObject();
        // Shows deprecated warning for new JsonParser() and parse(jsonString)
        JsonObject jsonObject = new JsonParser().parse(jsonString).getAsJsonObject();

        assertTrue(jsonObjectAlt.equals(jsonObject));

    }
}

Answered By – R.G

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published