Java对象和json对象
java对象和json对象转换接口
class Persion1 { @SerializedName("name") @Expose String name; public void setName(String name) { this.name = name; } @Override public String toString() { return "Persion1{" + "name='" + name + '\'' + '}'; } } class Persion2 { @SerializedName("name") @Expose String name; @SerializedName("age") @Expose int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Persion2{" + "name='" + name + '\'' + ", age=" + age + '}'; } } private static final Gson GSON_OBJ = new Gson(); public static <T> Optional<T> stringToObject(String jsonString, Class<T> classOfT) { if (TextUtils.isEmpty(jsonString) || classOfT == null) { return Optional.empty(); } T objectOfT = null; try { objectOfT = GSON_OBJ.fromJson(jsonString, classOfT); } catch (JsonSyntaxException e) { Log.e(TAG, "Error happens when parse json."); } return Optional.ofNullable(objectOfT); } public void testJsonInterface() { Persion1 P1_P2_01 = new Persion1(); P1_P2_01.setName("p1Name"); String P1_P2_Str01 = new Gson().toJson(P1_P2_01); Persion2 P1_P2_02 = stringToObject(P1_P2_Str01, Persion2.class).orElse(null); Log.i(TAG, "P1_P2_Str01:" + P1_P2_Str01 + "P1_P2_02:" + P1_P2_02); Persion2 P2_P1_01 = new Persion2(); P2_P1_01.setAge(20); P2_P1_01.setName("p2Name"); String P2_P1_Str01 = new Gson().toJson(P2_P1_01); Persion1 P2_P1_02 = stringToObject(P2_P1_Str01, Persion1.class).orElse(null); Log.i(TAG, "P2_P1_Str01:" + P2_P1_Str01 + "p2:" + P2_P1_02); }