原始报文:
请求报文:
[
{
"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. 【面试】IP数据报格式分析

    (除选项外的报头区总共20个字节) 1)版本:IPV4/IPV6 2)头长度:报头区长度,用于计算数据区的开始位置,比如头长度为6,代表报头区长度为6*4个字节,头长度的单位为4字节,所以报头区长度不 ...

  2. Python属性的查找顺序

    属性查找顺序 关于属性描述符请看上文>属性描述符   在梳理属性查找相关知识时,查看了很多的书籍和他人的博客,发现很多讲的过于抽象,并没有一个清晰的流程呈现.特此写下我对于此方面的理解和总结. ...

  3. vue中$router与$route的区别

    $.router是VueRouter的实例,相当于一个全局的路由器对象.包含很多属性和子对象,例如history对象 $.route表示当前正在跳转的路由对象.可以通过$.route获取到name,p ...

  4. (转)nginx与PHP的关系

    php是一门编程语言,可以编写很多程序,但是只有php的话,你的php只能在你的服务器里孤立的运行,比如你用php写了一个可以通过身高计算人的标准体重的程序,虽然这个程序可以在服务器运行,但是他还不能 ...

  5. java之hibernate之基于主键的双向一对一关联映射

    这篇 基于主键的双向一对一关联映射 1.依然考察人和身份证的一对一关系,如果采用主键关联,那么其表结构为: 2.类结构 Person.java public class Person implemen ...

  6. wc命令——Linux系统高效数据统计工具

    wc(world count)是一个统计文件字词,字节,行数的Linux命令,它可以帮我们非常方便的统计以上信息. 主要参数 常见参数如下: -c 统计字节数. -l 统计行数. -m 统计字符数.这 ...

  7. js 一些有意思的小Demo

  8. 用weexplus从0到1写一个app(2)-页面跳转和文章列表及文章详情的编写

    说明 结束连续几天的加班,最近的项目终于告一段落,今天抽点时间开始继续写我这篇拖了很久的<用weexplus从0到1写一个app>系列文章.写这篇文章的时候,weexplus的作者已经把w ...

  9. 那些年伴我一起成长的SAP装备

    今天这篇文章无关技术,我们来聊聊SAP装备,即打上了SAP logo的那些物品. 但凡在SAP圈子工作过一段时间的从业者们,手上或多或少都拥有一些此类装备.Jerry当然也不例外,这些装备无论物品本身 ...

  10. LAMP环境搭建之编译安装指南(php-5.3.27.tar.gz)

    测试环境:CentOS release 6.5 (Final) 软件安装:httpd-2.2.27.tar.gz   mysql-5.1.72.tar.gz   php-5.3.27.tar.gz 1 ...