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

 

posted @ 2023-05-15 15:24  SaraMorning  阅读(26)  评论(0编辑  收藏  举报