private void initGson()

in inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/sources/RedisSource.java [541:662]


    private void initGson() {
        this.gson =
                new GsonBuilder().registerTypeAdapter(KeyStringValueHash.class, new TypeAdapter<KeyStringValueHash>() {

                    @Override
                    public void write(JsonWriter out, KeyStringValueHash kv) throws IOException {
                        out.beginObject();
                        out.name("DB").beginObject();
                        out.name("dbNumber").value(kv.getDb().getDbNumber());
                        out.name("dbSize").value(kv.getDb().getDbsize());
                        out.name("expires").value(kv.getDb().getExpires());
                        out.endObject();
                        out.name("valueRdbType").value(kv.getValueRdbType());
                        out.name("key").value(new String(kv.getKey()));
                        out.name("value").beginObject();
                        for (byte[] b : kv.getValue().keySet()) {
                            out.name(new String(b)).value(new String(kv.getValue().get(b)));
                        }
                        out.endObject();
                        out.endObject();
                    }

                    @Override
                    public KeyStringValueHash read(JsonReader in) throws IOException {
                        return null;
                    }
                }).registerTypeAdapter(DefaultCommand.class, new TypeAdapter<DefaultCommand>() {

                    @Override
                    public void write(JsonWriter out, DefaultCommand dc) throws IOException {
                        out.beginObject();
                        out.name("key").value(new String(dc.getCommand()));
                        out.name("value").beginArray();
                        for (byte[] bytes : dc.getArgs()) {
                            out.value(new String(bytes));
                        }
                        out.endArray();
                        out.endObject();
                    }

                    @Override
                    public DefaultCommand read(JsonReader in) throws IOException {
                        return null;
                    }
                })
                        .registerTypeAdapter(KeyStringValueList.class, new TypeAdapter<KeyStringValueList>() {

                            @Override
                            public void write(JsonWriter out, KeyStringValueList kv) throws IOException {
                                out.beginObject();
                                out.name("key").value(new String(kv.getKey()));
                                out.name("value").beginArray();
                                for (byte[] bytes : kv.getValue()) {
                                    out.value(new String(bytes));
                                }
                                out.endArray();
                                out.endObject();
                            }

                            @Override
                            public KeyStringValueList read(JsonReader in) throws IOException {
                                return null;
                            }
                        })
                        .registerTypeAdapter(KeyStringValueSet.class, new TypeAdapter<KeyStringValueSet>() {

                            @Override
                            public void write(JsonWriter out, KeyStringValueSet kv) throws IOException {
                                out.beginObject();
                                out.name("key").value(new String(kv.getKey()));
                                out.name("value").beginArray();
                                for (byte[] bytes : kv.getValue()) {
                                    out.value(new String(bytes));
                                }
                                out.endArray();
                                out.endObject();
                            }

                            @Override
                            public KeyStringValueSet read(JsonReader in) throws IOException {
                                return null;
                            }
                        })
                        .registerTypeAdapter(KeyStringValueString.class, new TypeAdapter<KeyStringValueString>() {

                            @Override
                            public void write(JsonWriter out, KeyStringValueString kv) throws IOException {
                                out.beginObject();
                                out.name("key").value(new String(kv.getKey()));
                                out.name("value").value(new String(kv.getValue()));
                                out.endObject();
                            }

                            @Override
                            public KeyStringValueString read(JsonReader in) throws IOException {
                                return null;
                            }
                        })
                        .registerTypeAdapter(KeyStringValueZSet.class, new TypeAdapter<KeyStringValueZSet>() {

                            @Override
                            public void write(JsonWriter out, KeyStringValueZSet kv) throws IOException {
                                out.beginObject();
                                out.name("key").value(new String(kv.getKey()));
                                out.name("value").beginArray();
                                for (ZSetEntry entry : kv.getValue()) {
                                    out.beginObject();
                                    out.name("element").value(new String(entry.getElement()));
                                    out.name("score").value(entry.getScore());
                                    out.endObject();
                                }
                                out.endArray();
                                out.endObject();
                            }

                            @Override
                            public KeyStringValueZSet read(JsonReader in) throws IOException {
                                return null;
                            }
                        })
                        .create();
    }