首页 > 编程语言 >Java对象和json对象

Java对象和json对象

时间:2023-05-15 15:36:27浏览次数:32  
标签:P2 P1 Java name 对象 json 01 Str01 String

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

 

标签:P2,P1,Java,name,对象,json,01,Str01,String
From: https://www.cnblogs.com/SaraMoring/p/17402021.html

相关文章

  • java.lang.IllegalArgumentException: Illegal URL:
    问题描述: java.lang.IllegalArgumentException:IllegalURL:翻译为:IllegalArgumentException:非法网址:原因:网址错误,网址前面加http:// 后面加/ ;(如下图) ......
  • ChatGPT Plugin开发setup - Java(Spring Boot) Python(fastapi)
    记录一下快速模板,整体很简单,如果不接auth,只需要以下:提供一个/.well-known/ai-plugin.json接口,返回openAI所需要的格式提供openAPI规范的文档CORS设置其他的和普通的web开发类似.本地开发就直接使用localhost即可,前几天官方localhost无法联通,最近应该修复了.要让GPT......
  • 将java开发环境装入linux系统
    使用该指令下载jdkwgethttps://dragonwell.oss-cn-shanghai.aliyuncs.com/8.6.6/Alibaba_Dragonwell_8.6.6_x64_linux.tar.gz使用 tarxf+文件名 解压文件tarxfAlibaba_Dragonwell_8.6.6_x64_linux.tar.gz配置环境变量vim/etc/profile 打开环境变量文件exportJAV......
  • 直播平台搭建源码,java相册制作
    直播平台搭建源码,java相册制作 packagecn.demo2;importjavax.imageio.ImageIO;importjavax.swing.*;importjava.awt.*;importjava.awt.image.BufferedImage;importjava.io.IOException;/** *电子相册 */publicclassMyImageextendsJPanel{  //定义一个成员变量......
  • java.lang.reflect 包
    java.lang.reflect包提供了反射中用到类,主要的类说明如下:Constructor类:提供类的构造方法信息。Field类:提供类或接口中成员变量信息。Method类:提供类或接口成员方法信息。Array类:提供了动态创建和访问Java数组的方法。Modifier类:提供类和成员访问修饰符信息。......
  • Java日志体系
    转载:https://juejin.cn/post/6905026199722917902前言对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j1,Log4j2,CommonsLogging,Slf4j,Logback,Jul。但是在我们的......
  • Java中getResourceAsStream的用法,读取jar里面的文件
    首先,Java中的getResourceAsStream有以下几种:1.Class.getResourceAsStream(Stringpath):path不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。2.Class.getClassLoader.getRe......
  • json Web Token技术简要分析
    JsonWebToken是一个开发标准,用于作为json对象在各方之间安全等传输信息,该信息可以被验证和信任,因为是数字签名的。应用场景Authorization(授权):一旦用户登录,后续每个请求都会包含jwt,允许该用户访问令牌允许的路由,服务和资源。单点登录是现在广泛使用jwt的一个场景,因为其开销小,并......
  • 40+JavaScript进阶单行代码
    数组//生成数组0-99的数组//方案1constcreateArr=(n)=>Array.from(newArray(n),(v,i)=>i);letarr=createArr(100);console.log(arr);//方案2constcreateArr=(n)=>newArray(n).fill(0).map((v,i)=>i)......
  • Java中String.spilt()方法的使用
    1、Java中可以使用String.spilt()方法按照指定的分隔符将字符串进行分割,然后返回字符串。2、测试demo:     ......