原始报文:
请求报文:
[
{
"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. Connection: close和Connection: keep-alive有什么区别

    转自:https://www.cnblogs.com/TinyMing/p/4597136.html 看到有人问Connection: close和Connection: keep-alive有什么区 ...

  2. lambda表达式已经成为了开发者必须要掌握的技能?

    lambda表达式 lambda表达式是什么 引用百度百科 “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的la ...

  3. (idea maven)mybatis-generator步骤

    1.新建一个maven项目,选择maven-archetype-webapp 点击next 2.项目名称,点击next 3.选择项目存放路径,然后点击finish 4.在main包下 添加包java和 ...

  4. 【Linux】一步一步学Linux——初识Linux命令解析器(10)

    目录 00. 目录 01. Shell简介 02. Shell分类 03. 交互式shell和非交互式shell 04. 登录shell和非登录shell 05. Shell类型 06. 参考 00. ...

  5. mysql中常见正则表达式的应用

    查找name字段中以'st'为开头的所有数据: mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st'; 查找name字段中以'ok ...

  6. [SOJ #538]好数 [CC]FAVNUM(2019-8-6考试)

    题目大意:给定$n$个正整数,求$[l,r]$中第$k$小的”好数“.$l,r\leqslant10^{18},n\leqslant62$,出现的其他数均$\leqslant10^{50}$ 好数定义 ...

  7. 让table中的td不会被过长的文字撑开,并且自动出现省略号

    <style type="text/css"> table {width:600px;table-layout:fixed;} td {white-space:nowr ...

  8. Linux虚拟机设置静态ip

    二.设置静态ip dhclient 动态分配ip 修改 ifcfg-ens33网卡配置文件  静态分配ip dhclient -r (释放动态分配的ip地址) vi /etc/sysconfig/ne ...

  9. 【洛谷 P2226】 [HNOI2001]遥控赛车比赛(最短路)

    题目链接 首先拆点,把每个点拆成4个点,表示到达这个点的时候赛车的朝向. 然后考虑连边. 相邻同向并且都是可以走的点直接连边权1的边. 至于怎么转向,只需在每个点\(i\)向每个方向一直拓展直到不能走 ...

  10. 【转载】 C#使用Math.Round方法对计算结果进行四舍五入操作

    在C#的数值运算中,有时候需要对计算结果进行四舍五入操作,此时就可使用内置方法Math.Round方法来实现四舍五入操作,Math.Round方法有多个重载函数,支持设置有效位数进行四舍五入,如果没有 ...