原始报文:
请求报文:
[
{
"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. LeetCode 566. 重塑矩阵(Reshape the Matrix)

    566. 重塑矩阵 566. Reshape the Matrix 题目描述 LeetCode LeetCode LeetCode566. Reshape the Matrix简单 Java 实现 c ...

  2. new/delete与命名空间

    目录 1. new/delete 2. 命名空间 1. new/delete C++中的动态内存分配 C++通过new关键字进行动态内存申请 C++中的动态内存申请是基于类型进行的 delete关键字 ...

  3. Redis Streams与Spark的完美结合

    来源:Redislabs 作者:Roshan Kumar 翻译:Kevin  (公众号:中间件小哥) 最近,我有幸在 Spark +AI 峰会上发表了题目为“Redis + Structured St ...

  4. [SOJ #537]不包含 [CF102129I]Incomparable Pairs(2019-8-6考试)

    题目大意:给定一个长度为$n$的字符串$s$,求有多少个无序字符串二元组$(x,y)$满足:$x,y$是$s$的字串,且$x$不是$y$的字串,$y$不是$x$的字串 题解:发现满足$x,y$是$s$ ...

  5. html中实现某区域内右键自定义菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. Centos 6.10 安装 Jenkins

    前言 持续集成的概念 持续集成,Continuous integration ,简称CI. 持续集成正是针对这一类问题的一种软件开发实践.它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多 ...

  7. CAS 5.x搭建常见问题系列(1).未认证的授权服务

    错误内容 错误信息如下: 未认证授权的服务 CAS的服务记录是空的,没有定义服务.希望通过CAS进行认证的应用程序必须在服务记录中明确定义 错误原因 CAS 5.x 默认情况下不支持HTTP的客户端接 ...

  8. 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题

    原文:解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 因为 Win32 的窗口句柄是可以跨进程传递的,所以可以用来实现跨进程 UI.不过,本文不会谈论跨进程 UI 的具体实现,只会提及其实现 ...

  9. 未能加载文件或程序集system.web.extensions解决方法

    发现未能加载文件或程序集的错误,这是由于我的机器上没有安装Ajax的原因.问题解决后,整理如下:表现:1."System.Web.Extensions, Version=1.0.61025.0, Cu ...

  10. C盘清理、C盘瘦身、省出30G

    三招C盘瘦身30G,清理win10系统中虚占C盘空间的三大祸害 1.对C盘进行“磁盘清理” C盘右键->属性->磁盘清理->清理系统文件->勾选“windows更新清理”-&g ...