原始报文:
请求报文:
[
{
"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. doDBA工具使用详解

    目录 1.简介 2.下载 3.使用帮助 4.配置 4.1.模板 4.2.启动命令 5.部署流程 5.1.下载 5.2.选定被监控主机 5.3.在被监控主机上添加Linux用户.MySQL 用户 5.4 ...

  2. kubernetes 实践三:使用kubeadm安装k8s1.16.0

    环境版本说明: 三台vmware虚拟机,系统版本CentOS7.6. Kubernetes 1.16.0,当前最新版. flannel v0.11 docker 18.09 使用kubeadm可以简单 ...

  3. 【IDEA使用技巧】(2) —— 模板设置

    1.IntelliJ IDEA模板使用 1.1.IDEA Live Templates的使用 选择File—Settings,在Editor中选择Live Templates,即可查看现有对所有语言的 ...

  4. [LOJ2292] [THUSC2016] 成绩单

    题目链接 LOJ:https://loj.ac/problem/2292 洛谷:https://www.luogu.org/problemnew/show/P5336 Solution 区间\(\rm ...

  5. Codeforces Round #569 Div. 1

    A:n-1次操作后最大值会被放到第一个,于是暴力模拟前n-1次,之后显然是循环的. #include<bits/stdc++.h> using namespace std; #define ...

  6. pytorch learning rate decay

    关于learning rate decay的问题,pytorch 0.2以上的版本已经提供了torch.optim.lr_scheduler的一些函数来解决这个问题. 我在迭代的时候使用的是下面的方法 ...

  7. openssl jia adress

    ???????????????????????????????????????????openssl证IP 首先创建openssl.cnf, 内容如下. 其中organizationalUnitNam ...

  8. 使用jQuery开发accordion手风琴插件

    一.插件效果 手风琴插件常用的功能均已实现,包括:手风琴菜单项的折叠展开效果.选中指定菜单项.判断菜单项是否选中等. 效果如下: 二.插件内部HTML元素结构 <!-- accordioon组件 ...

  9. top 命令 详解

    VIRT:virtual memory usage 虚拟内存 1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等 2.假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m ...

  10. VBA文本文件(二十)

    还可以读取Excel文件,并使用VBA将单元格的内容写入文本文件.VBA允许用户使用两种方法处理文本文件 - 文件系统对象(FSO) 使用Write命令 文件系统对象(FSO) 顾名思义,FSO对象帮 ...