Search code examples
springspring-bootparsinggsonjsonparser

JsonParser is deprecated


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