Peony의 기록 창고 🌼
article thumbnail
반응형

동아리에서 프로젝트를 하면서 애플 로그인을 구현하게 되었는데 Gson 라이브러리의 JsonParser가 deprecated 되었다고 뜬다😢

 

 

https://github.com/google/gson/commit/dc20b7561af3a793e4945842040e956803b641c9

 

Fix error prone warns (#2320) · google/gson@dc20b75

* Adds `@SuppressWarnings("NarrowingCompoundAssignment")` * Adds `@SuppressWarnings("TypeParameterUnusedInFormals")` * Adds `@SuppressWarnings("JavaUtilDate")` ...

github.com

 

찾아보니, Gson 2.8.6 버전 이전에는 JsonParser의 parse() 메소드를 이용하여 파싱하였지만, Gson 2.8.6부터는 JsonParser의 생성자와 parse() 메소드가 deprecated 되었다고 한다.

대신 JsonParser.parseString() 메소드를 이용하여 Json 문자열을 parsing하고, JsonElement 객체를 리턴하는 방식을 사용하면 된다. 

 

 

Before

JsonParser parser = new JsonParser();
JsonObject keys = (JsonObject) parser.parse(result.toString());
JsonArray keyArray = (JsonArray) keys.get("keys");

String[] decodeArray = idToken.split("\\.");
String header = new String(Base64.getDecoder().decode(decodeArray[0]));

JsonElement kid = ((JsonObject) parser.parse(header)).get("kid");
JsonElement alg = ((JsonObject) parser.parse(header)).get("alg");

 

After

JsonObject keys = (JsonObject) JsonParser.parseString(result.toString());
JsonArray keyArray = (JsonArray) keys.get("keys");

String[] decodeArray = idToken.split("\\.");
String header = new String(Base64.getDecoder().decode(decodeArray[0]));

JsonElement kid = ((JsonObject) JsonParser.parseString(header)).get("kid");
JsonElement alg = ((JsonObject) JsonParser.parseString(header)).get("alg");
반응형
profile

Peony의 기록 창고 🌼

@myeongju