原始报文:
请求报文:
[
{
"appNo" : "",
"applicantCredentialCode" : "",
"applicantCredentialNo" : "",
"applicantName" : "",
"benfList" : [
{
"appNo" : "",
"beneficiaryCredentialCode" : "",
"beneficiaryCredentialNo" : "",
"beneficiaryName" : "",
"seqNo" : ""
}
],
"createUser" : "",
"insList" : [
{
"appNo" : "",
"insurantAmount" : "",
"insurantCredentialCode" : "",
"insurantCredentialNo" : "",
"insurantName" : "",
"seqNo" : ""
}
],
"insureAddress" : "",
"insureWay" : "",
"messge" : "",
"policyEndDate" : "",
"policyStartDate" : "",
"policyState" : "",
"policyStateDesc" : "",
"policyTotalAmount" : "",
"policyType" : "",
"riskList" : [
{
"appNo" : "",
"insuranceTypeCode" : "",
"insuranceTypeName" : "",
"seqNo" : ""
}
],
"saveState" : "",
"seqNo" : "",
"uploadType" : ""
}, {
"appNo" : "",
"applicantCredentialCode" : "",
"applicantCredentialNo" : "",
"applicantName" : "",
"benfList" : [
{
"appNo" : "",
"beneficiaryCredentialCode" : "",
"beneficiaryCredentialNo" : "",
"beneficiaryName" : "",
"seqNo" : ""
}
],
"createUser" : "",
"insList" : [
{
"appNo" : "",
"insurantAmount" : "",
"insurantCredentialCode" : "",
"insurantCredentialNo" : "",
"insurantName" : "",
"seqNo" : ""
}
],
"insureAddress" : "",
"insureWay" : "",
"messge" : "",
"policyEndDate" : "",
"policyStartDate" : "",
"policyState" : "",
"policyStateDesc" : "",
"policyTotalAmount" : "",
"policyType" : "",
"riskList" : [
{
"appNo" : "",
"insuranceTypeCode" : "",
"insuranceTypeName" : "",
"seqNo" : ""
}
],
"uploadType" : ""
}
] 响应报文:
{
"respCode" : "0000",
"respMsg" : "",
"respData" : [{
"message" : "",
"saveState" : "1",
"seqNo" : ""
},
{
"message" : "",
"saveState" : "1",
"seqNo" : ""
}]
} 这是报文转换的类:
 package com.sinosoft.lis.bjbs.tasks.zhaoyongqiang;

 import java.util.LinkedHashMap;

 import javax.servlet.http.HttpUtils;

 import com.alibaba.fastjson.JSONObject;
import com.sinosoft.serviceclient.bj.SCObjectCheatClient;
import com.sinosoft.serviceclient.bj.SCObjectCheatJsonClient;
import com.sinosoft.tech.log.LoggerFactory;
import com.sinosoft.tech.log.LoggerFactory;
import com.sinosoft.tech.log.Logger;
import com.sinosoft.tools.HttpUtil;
import com.sinosoft.tools.xmltools.framework.XmlConvertor;
import com.sinosoft.utility.CError;
import com.sinosoft.utility.CErrors;
import com.sinosoft.utility.ExeSQL;
import com.sinosoft.utility.SSRS;
import com.sinosoft.webservice.DTO.SCOC.SC_Global;
import com.sinosoft.webservice.DTO.SCOC.SC_Request;
import com.sinosoft.webservice.DTO.SCOC.SC_Requests; public class SCJson {
static final Logger logger = LoggerFactory.getLogger(SCJson.class);
private CErrors mErrors = new CErrors(); // 组装json 这是前台传过来的需要报送的结果集
private boolean submitData(SSRS tSSRS) {
if (tSSRS == null) {
buildError("submitData", "提取数据失败!");
return false;
}
if (tSSRS.getMaxRow() < 1) {
buildError("submitData", "没有需要报送的数据!");
return false;
}
int tRow = tSSRS.getMaxRow(); // 获取行数 // 创建一个
JSONObject[] tRoots = new JSONObject[tRow];
try {
for (int i = 1; i <= tRow; i++) {
// 为了保证json对象的顺序,需要使用linkedhashmap对象对json中的数据进行控制
JSONObject tRoot = new JSONObject(new LinkedHashMap<String, Object>());
tRoot.put("appNo", "");// 现在先将值赋值为空
tRoot.put("applicantCredentialCode", "");
tRoot.put("applicantCredentialNo", "");
tRoot.put("applicantName", ""); // 根据报文的样式 需要再次创建一个json数组
JSONObject[] benfList = assemblebenfList("");
tRoot.put("benfList", benfList);// 注意:这里记得一定要放进去
tRoot.put("createUser", "");
// 根据报文的样式 需要再次创建一个json数组
JSONObject[] insList = assembleinsList("");
tRoot.put("insList", insList);
tRoot.put("insureAddress", "");
tRoot.put("insureWay", "");
tRoot.put("messge", "");
tRoot.put("policyEndDate", "");
tRoot.put("policyStartDate", "");
tRoot.put("policyState", "");
tRoot.put("policyStateDesc", "");
tRoot.put("policyTotalAmount", "");
tRoot.put("policyType", ""); JSONObject[] riskList = assembleriskList("");
tRoot.put("riskList", riskList);
tRoot.put("saveState", "");
tRoot.put("seqNo", "");
tRoot.put("uploadType", "");
tRoots[i - 1] = tRoot;// 将这个实体赋值到数组中 }
JSONObject tJSONObject = new JSONObject();
tJSONObject.put("Test", tRoots);
String jsonReq = tJSONObject.toString();// 将json对象转换成字符串
logger.info("请求json>>>>>>>>>>>" + jsonReq);
// TODO 调用http请求进行数据推送
// String returnJSON =
// HttpUtil.post("josn字符串","要请求的url");//这是请求返回的json字符串
String returnJson = "{\"respCode\":\"0000\",\"respMsg\":\"报送成功\",\"respData\":[{\"message\":\"\",\"saveState\":\"1\",\"seqNo\":\"\"},{\"message\":\"\",\"saveState\":\"1\",\"seqNo\":\"\"}]}";
// 将字符串转换成json
JSONObject parseObject = JSONObject.parseObject(returnJson);
// 获取json某个节点的属性值 String respCode = parseObject.getString("respCode");
// 根据具体的需求对节点的值进行相应的判断
if ("0000".equals(respCode)) {
logger.info("该批次推送成功!【" + parseObject.getString("respMsg") + "】");
} else {
logger.info("该批次推送失败!");
}
} catch (Exception e) {
logger.info("该批次数据推送出现异常", e);
e.printStackTrace(); } return true;
} private JSONObject[] assembleriskList(String string) {
// TODO 通过传入条件查询险种的信息
String tSql = "select '1','1','1','1','1','1' from dual ";// 是会使用到这个参数的
SSRS tSSRS = new ExeSQL().execSQL(tSql);
JSONObject[] tJSONObjects = new JSONObject[tSSRS.getMaxRow()];// 创建json对象
int size = tSSRS.getMaxRow();
for (int i = 1; i <= size; i++) {
// 创建json对象
JSONObject tRoot = new JSONObject();
tRoot.put("appNo", "");
tRoot.put("insuranceTypeCode", "");
tRoot.put("seqNo", "");
tJSONObjects[i - 1] = tRoot;
}
return tJSONObjects;
} private JSONObject[] assembleinsList(String string) {
// TODO 通过传入条件查询被保人的信息
String tSql = "select '1','1','1','1','1','1' from dual ";// 是会使用到这个参数的
SSRS tSSRS = new ExeSQL().execSQL(tSql);
JSONObject[] tJSONObjects = new JSONObject[tSSRS.getMaxRow()];// 创建json对象
int size = tSSRS.getMaxRow();
for (int i = 1; i <= size; i++) {
// 创建json对象
JSONObject tRoot = new JSONObject();
tRoot.put("appNo", "");
tRoot.put("insurantAmount", "");
tRoot.put("insurantCredentialCode", "");
tRoot.put("insurantCredentialNo", "");
tRoot.put("insurantName", "");
tRoot.put("seqNo", "");
tJSONObjects[i - 1] = tRoot;
}
return tJSONObjects;
} /**
* 通过传入的变量查询受益人的信息
*
* @param variable
* @return
*/
private JSONObject[] assemblebenfList(String variable) {
// TODO 通过传入条件查询受益人信息
String tSql = "select '1','1','1','1','1','1' from dual ";// 是会使用到这个参数的
SSRS tSSRS = new ExeSQL().execSQL(tSql);
JSONObject[] tJSONObjects = new JSONObject[tSSRS.getMaxRow()];// 创建json对象
int size = tSSRS.getMaxRow();
for (int i = 1; i <= size; i++) {
// 创建json对象
JSONObject tRoot = new JSONObject();
tRoot.put("appNo", "");
tRoot.put("beneficiaryCredentialCode", "");
tRoot.put("beneficiaryCredentialNo", "");
tRoot.put("beneficiaryName", "");
tRoot.put("seqNo", "");
tJSONObjects[i - 1] = tRoot;
}
return tJSONObjects;
} /**
* 错误构造方法
*
* @param tFunctionName
* @param tErrorMessage
*/
private void buildError(String tFunctionName, String tErrorMessage) { CError tCError = new CError();
tCError.moduleName = this.getClass().getSimpleName();
tCError.functionName = tFunctionName;
tCError.errorMessage = tErrorMessage;
mErrors.addOneError(tCError);
logger.error(tErrorMessage);
System.out.println(tErrorMessage);
} public static void main(String[] args) {
StringBuffer tStringBuffer = new StringBuffer();
tStringBuffer.append("select 'Upload_AAA','ContNo&InsuredNo' from dual ");
tStringBuffer.append("union ");
tStringBuffer.append("select 'Upload_BBB','AppntNo&BnfNo' from dual "); new SCJson().submitData(new ExeSQL().execSQL(tStringBuffer.toString()));
}
}

其实json格式的请求或者响应报文是不需要创建对应的实体类的。直接使用jsonObject类中的方法进行转换就行。

json报文转Java实体类,xml报文转实体类。网址:http://www.ofmonkey.com/tools/entit

接口中的JSON报文的更多相关文章

  1. 使用LR编写HTTP协议Json报文格式接口脚本实战

    最近在做HTTP协议接口压测时,遇到一些编写脚本方面的问题,在这里总结记录下,以便以后温习,也希望能帮助到和我有同样困惑的朋友吧. //实战代码如下所示:Action() { lr_start_tra ...

  2. python使用requests发送application/json报文数据

    def client_post_jsondata_requests(request_url,requestJSONdata): #功能说明:发送json请求报文到指定的地址并获取请求响应报文 #输入参 ...

  3. Java 用HTTP的方式发送JSON报文请求

    前言: 项目调用第三方接口时,通常是用socket或者http的通讯方式发送请求:http 为短连接,客户端发送请求都需要服务器端回送响应,请求结束后,主动释放链接.Socket为长连接:通常情况下S ...

  4. ABAP接口之Http发送json报文

    abap 调用http 发送 json 测试函数 SE11创建结构:zsmlscpnotice SE37创建函数:zqb_test_http_fuc1 FUNCTION zqb_test_http_f ...

  5. 项目记事【SpringMVC-2】:将后台的对象,转成JSON报文

    Spring版本:3.2.7 Jackson版本: <!--Jackson --> <dependency> <groupId>com.fasterxml.jack ...

  6. 使用JAVA获取JSON报文

    基本JSON格式: { "name": "liming", "age": "13", "array" ...

  7. 接口中的xml报文和实体类的之间转换

    需求:湖南保险行业意健险承保风险预警平台数据接口 平台提供HTTPServlet服务,接受保险公司的数据请求,并在处理后返回给保险公司相应的处理结果.数据接口格式为XML数据报文,在每次接口的交易中, ...

  8. 使用异步任务加载网络上json数据并加载到ListView中

    Android中使用网络访问来加载网上的内容,并将其解析出来加载到控件中,是一种很常见的操作.但是Android的UI线程(也就是主线程)中是不允许进行耗时操作的,因为耗时操作会阻塞主线程,影响用户体 ...

  9. JSON Schema 校验实例

    JSON Schema 简介 JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. ...

随机推荐

  1. [转帖]keepalived实现服务高可用

    keepalived实现服务高可用 https://www.cnblogs.com/clsn/p/8052649.html 第1章 keepalived服务说明 1.1 keepalived是什么? ...

  2. [HAOI2008]硬币购物-题解

    传送门 解答 根据容斥原理 \[ \left|\bigcap_{i=1}^n \overline{S_i}\right| = |U| - \left|\bigcup_{i=1}^n S_i\right ...

  3. Delphi Sysem.JSON 链式写法

    链式写法有很多优点:连贯.语意集中.简洁.一气呵成.可读性强.比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() ...

  4. 【LEETCODE】45、766. Toeplitz Matrix

    package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * ...

  5. shell分享

    shell脚本分享 一.介绍shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...

  6. MGR并行复制从节点复制线程死锁

    1.故障现象 20191113-22:32 datax全量同步t_shop_info表到 eorder所在的实例,t_shop_info表有两个唯一约束.总数据量不超过1w行,同步完成后MGR从库复制 ...

  7. ubuntu 迅雷 XwareDesktop

    Xinkai/XwareDesktop Ubuntu上编译安装说明 Home    Ubuntu上编译安装说明    使用说明    升级到0.12    升级到0.9    发行版支持情况    名 ...

  8. 分布式系统session一致性解决方案

    在单机系统中,不存在Session共享问题,但是在分布式系统中,我们必须实现session共享机制,使得多台应用服务器之间会话统一,如果不进行Session共享会出现数据不一致,比如:会导致请求落到不 ...

  9. jenkens 安装是git版本过低 升级

    Jenkins本机默认使用"yum install -y git" 安装的git版本比较低,应该自行安装更高版本的git. 查看jenkins本机的git版本 1 2 [root@ ...

  10. EasyUI DataGrid 根据ID选中行(转载)

      转载来源: https://blog.csdn.net/chq00788/article/details/51505519 function selectRows(){ //获取需要选中的记录ID ...