【_ 記 】常用的数据转换 : new Gson().fromJson(String ,Object.class) 使用方法_满眼星陈丶入目皆是李的博客-程序员秘密

业务需求:

最近在调用自己封装的API接口的时候,由于API接口返回json数据,需要把json数据转为对象,进行业务判断和数据调用。封装的时候json格式种类很多,最常见的就是带有返回头的:

代码演示:
api接口返回的 result 字符串

String result= "{\n" +
        "  \"code\": 0,\n" +
        "  \"desc\": \"订单信息查询成功!\",\n" +
        "  \"orderStatus\": \"PENDING\",\n" +
        "  \"certStatus\": \"PENDING\",\n" +
        "  \"data\": {\n" +
        "    \"order\": {\n" +
        "      \"partnerOrderID\": \"1111111\",\n" +
        "      \"caOrderID\": \"111111\",\n" +
        "      \"commonName\": \"baidu.com\",\n" +
        "      \"CSR\": \"\",\n" +
        "      \"signatureAlgorithm\": \"SHA2-256\",\n" +
        "      \"SANs\": [\n" +
        "        \"test.com\"\n" +
        "      ]\n" +
        "    },\n" +
        "    \"verification\": {\n" +
        "      \"organization\": \"NONE\",\n" +
        "      \"phone\": \"NONE\",\n" +
        "      \"domain\": \"VERIFYING\"\n" +
        "    },\n" +
        "    \"organization\": {\n" +
        "      \"organizationID\": \"111111\",\n" +
        "      \"organizationName\": \"测试组\",\n" +
        "      \"countryOrAreaCode\": \"CN\",\n" +
        "      \"state\": \"北京市\"\n" +
        "    },\n" +
        "    \"contacts\": [\n" +
        "      {\n" +
        "        \"contactType\": \"CC\",\n" +
        "        \"firstName\": \"陈\",\n" +
        "        \"lastName\": \" 小橘\",\n" +
        "        \"phone\": \"13598056666\",\n" +
        "        \"email\": \"[email protected]\",\n" +
        "        \"title\": \"[email protected]\"\n" +
        "      }\n" +
        "    ],\n" +
        "    \"certs\": []\n" +
        "  }\n" +
        "}";

新建接收的实体对象

public class ToolResultQuery {
    private String result;
    private Integer code;
    private String desc;
    private String orderStatus;
    private String certStatus;
    private DataQuery data;
    //忽略get set
    }
//DataQuery对象下的二级对象
public class DataQuery {
    private Order_query order;
    private Verification_query verification;
    private Organization_query organization;
    private List<Contacts_query> contacts;
    private List<Certs_query> certs;
    }
    // Order_query
    public class Order_query {
    private String partnerOrderID;
    private String caOrderID;
    private String commonName;
    private String CSR;
    private String signatureAlgorithm;
    private List<String> SANs;
    }
    ...
    //省略其他对象 ,必须保证json里出现的对象和你新建的对象格式保持一致。

调用Gson fromJson()

ToolResultQuery toolResultQuery = new Gson().fromJson(result,ToolResultQuery.class);
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/o_o814222198/article/details/103610146

智能推荐

程序员秘密:博客标题(博客名);个人主页:昵称,注册名。释疑!!!_csdn 的昵称要求__雨辰的博客-程序员秘密

       程序员秘密的新博主,可能在刚加入博客时在从前没有开过个人博客,因此,对博客的设置并不熟悉。随着对博客的深入使用,博客内容不断增加,就会对博客的个性化设置提出要求。本博文,就针对新的CSDN博主常见的博客标题、昵称的个性设置进行说明,以期为CSDN新博主释疑,帮助他们开启精彩的博客之旅。说明:1、CSDN个人中心、个人主页。CSDN个人的博客、上传的资料、问答等数据都存档...

linux端口转发ufw,Ubuntu 的ufw 和iptables 的关系_weixin_39632471的博客-程序员秘密

文章目录[隐藏]ufwiptablesfilternatmangle包在 Linux 中的前世今生ufw 怎么和 iptables 一起合作的使用 ufw 和 iptables 的警告ufwUncomplicated FireWall,不是 Ubuntu FireWall 哦,是 debian 系发行版中为了轻量化配置 iptables 而开发的一款工具。UFW 和 iptables 一样都是匹配...

Shut Down!BY WangKe.Automation.WUST.2012.10,based on VC._kekecoffeedou的博客-程序员秘密

//*******************************************************************************************//************************Shut Down! BY WangKe.Automation.WUST.2012.10***********************//********

Caused by: java.lang.IllegalStateException: The process has not exited yet there_wu1g119的博客-程序员秘密

java写了一个爬虫 seleuinm+phantomjs 出现下面这种错误,百度google各种都找不到问题.试验多台机器 其中只有两台死活启动不了  [[email protected]_test tools]# java -jar t-1.0.jar 二月 22, 2017 2:28:30 下午 org.openqa.selenium.phantomjs.PhantomJSDriverSe...

二、shell脚本语言字符串处理-程序员秘密

shell脚本语言的字符串的处理

Spring Cloud 入门 ---- OAuth2 分布式认证授权【随笔】_akieay的博客-程序员秘密

OAuth2 分布式认证授权整体流程架构方案图:流程:1、UAA 认证服务负责认证授权。2、所有请求经过网关到达微服务。3、网关负责鉴权客户端以及请求转发。4、网关将 token 解析后传给微服务,微服务进行授权。整个演示项目包含4个模块:注册中心、认证服务、资源服务、网关服务。注册中心我们使用前面创建的 eureka-registry-center 作为注册中心,修改 授权服务 与 资源服务 分别添加注册中心相关配置。具体修改如下:一、引入 pom 依赖。【授权服务与

随便推点

Android一串数字分两段,底部对齐字号不同_android 金额单位和金额底部对齐_张建良_19890510的博客-程序员秘密

一串数字/文字分两段,字号不同没什么技术含量,分享下。效果图package xxx;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Pa...

基于STM32的CAN总线通信节点控制设计(毕设课设)_DIY_lOVER的博客-程序员秘密

说明:这是我的毕业设计,基于STM32的CAN总线通信节点设计。用的是STM32F103微控制器,LCD1602液晶显示,MQ-4甲烷气体传感器,CTM1050CAN收发器。但是甲烷传感器限于条件没有调试。项目概述:利用STM32作为主控制芯片,设计出利用CAN总线传输数据的通信节点,在查阅STM32和CAN总线等相关文献和资料基础上,确定节点的总体设计方案,主要包括电源模块、微控制器模块、气体传感器模块、LCD模块、报警模块等组成【资源下载】下载地址如下(851):https://docs

Python-pyqt5+opencv视频播放器,上传本地视频(三)_醉公子~的博客-程序员秘密

在这里我们基于Python-Windows+Pycharm+PyQt5基础环境配置,1000%解决你的环境问题(一)的学习,我们搭建好PyQt5的基础环境,这里我们将进行制作一个简单的软件-----视频播放器;基础环境:Windows10pycharm2019.3.4python3.7.3PyQt5OpenCV4.5.1在这里介绍几个重要的函数(方法)1. getOpenFileNamevideoName, _ = QFileDialog.getOpenFileName(self,

Linux命令行与shell脚本编程大全(shell脚本编程高级部分)_coderzyxx的博客-程序员秘密

}(光传myarray的话只能取数组的第一个值);函数会建一个local newarray newarray=(`echo “$@”`)从函数返回数组时echo ${newarray[

python调用opencv库实现kcf跟踪算法_机器学习进阶-目标跟踪-KCF目标跟踪方法 1.cv2.multiTracker_create(构造选框集合) 2. cv2.TrackerKCF_c..._weixin_39908263的博客-程序员秘密

1. tracker = cv2.multiTracker_create() 获得追踪的初始化结果2.cv2.TrackerKCF_create() 获得KCF追踪器3.cv2.resize(frame, (w, h), cv2.INTER_AEAR) # 进行图像大小的重新变化参数说明:frame表示输入图片,(w, h) 表示变化后的长和宽, cv2.INTER_AEAR表示插值的方法4.c...

python软件下载视频教程-Python视频教程下载:Python从入门到精通【传智播客】_weixin_37988176的博客-程序员秘密

Python视频教程:Python从入门到精通视频教程初级共19天课本套教程针对0基础的同学就python语言基础语法的各个点逐步讲解,由浅入深,通俗易懂,层层深入,从搭建环境到判断语句,再到基础的数据类型,之后对函数进行学习掌握,熟悉文件操作,初步构建面向对象的编程思想,最后以一个案例带领同学进入python编程殿堂的大门。课程内容:python基础学习课程,从搭建环境到判断语句,再到基础的数据...

推荐文章

热门文章

相关标签