类 ProtoUtils


  • public class ProtoUtils
    extends Convert
    Protobuf工具类

    实现Proto、Bean、Json之间的转换

    从以下版本开始:
    2022/5/19
    作者:
    ylyue
    • 字段详细资料

      • parser

        public static com.google.protobuf.util.JsonFormat.Parser parser
        Protobuf反序列化解析器

        用于将proto3 json解析为protobuf message

        支持配置:忽略未知字段、添加多个不同的TypeRegistry用来处理Any类型

      • printer

        public static com.google.protobuf.util.JsonFormat.Printer printer
    • 构造器详细资料

      • ProtoUtils

        public ProtoUtils()
    • 方法详细资料

      • registerType

        public static void registerType​(com.google.protobuf.Descriptors.Descriptor... descriptors)
        注册 Any 类型转换时需要的Protobuf类型描述
        参数:
        descriptors - Protobuf类型描述
      • registerType

        public static <T extends com.google.protobuf.GeneratedMessageV3> void registerType​(Class<T>... registerClasss)
        注册 Any 类型转换时需要的Protobuf类型描述
        参数:
        registerClasss - protobuf message class
      • toJSONObject

        public static com.alibaba.fastjson.JSONObject toJSONObject​(com.google.protobuf.MessageOrBuilder message)
      • toPageIPO

        public static PageIPO toPageIPO​(com.google.protobuf.MessageOrBuilder message)
      • toJsonString

        public static String toJsonString​(com.google.protobuf.MessageOrBuilder message)
        转换为Json字符串
        参数:
        message - protobuf message
        返回:
        Json字符串
      • toJsonStringIncludingDefaultValue

        public static String toJsonStringIncludingDefaultValue​(com.google.protobuf.MessageOrBuilder message)
        转换为Json字符串

        输出null值为默认value

        参数:
        message - protobuf message
        返回:
        Json字符串
      • merge

        public static void merge​(String json,
                                 com.google.protobuf.Message.Builder builder)
        json字符串对象合并到protobuf message
        参数:
        json - json字符串
        builder - protobuf message
      • merge

        public static void merge​(Map json,
                                 com.google.protobuf.Message.Builder builder)
        json对象合并到protobuf message
        参数:
        json - json对象
        builder - protobuf message
      • merge

        public static void merge​(Object javaBean,
                                 com.google.protobuf.Message.Builder builder)
        JavaBean合并到protobuf message
        参数:
        javaBean - JavaBean
        builder - protobuf message
      • toBuilder

        public static <T extends com.google.protobuf.Message.Builder> T toBuilder​(String json,
                                                                                  Class<T> builderClass)
        json字符串对象转换为protobuf message
        参数:
        json - json字符串
        builderClass - protobuf message class
        返回:
        protobuf message builder对象
      • toBuilder

        public static <T extends com.google.protobuf.Message.Builder> T toBuilder​(Map json,
                                                                                  Class<T> builderClass)
        json对象转换为protobuf message
        参数:
        json - json对象
        builderClass - protobuf message class
        返回:
        protobuf message builder对象
      • toBuilder

        public static <T extends com.google.protobuf.Message.Builder> T toBuilder​(Object javaBean,
                                                                                  Class<T> builderClass)
        JavaBean转换为protobuf message
        参数:
        javaBean - JavaBean
        builderClass - protobuf message class
        返回:
        protobuf message builder对象