JSON格式的各种转换
/**
*JSON 格式的解析
*/
// json 去掉转义字符
message = message.replaceAll("\\\\", "");
//转成String类型
String jsonStr = message.substring(message.indexOf("[") + 1,
message.indexOf("]"));
//转成String类型的JSON格式
jsonObject = JSONObject.fromObject(jsonStr);
//通过key进行取值
String responseCode = jsonObject.getString("msg");
mapRes.put("empNameAdd", empNameAdd);
mapRes.put("deptNameAdd", deptNameAdd);
mapRes.put("deptNo", deptNo);
mapRes.put("loginName", loginName);
mapRes.put("empId", empId);
//定义转成json数组,将map集合封装的数据放到json数组里,定义一个jsonObject,
//通过put方法,转给前台
JSONArray ar = new JSONArray();
ar.add(mapRes);
JSONObject oj = new JSONObject();
oj.put("memberInfo", ar);
_result.setData(oj);
/**
**{
"status": 0,
"msg": "ok",
"data": [
"memberInfo":{
{
"deptNo": "103",
"empNameAdd": "李俊",
"empId": "50048",
"loginName": "lj",
"deptNameAdd": "上海健一网大药房连锁经营有限公司小世界药店"
}
}
]
}
*/
@RequestMapping("/insertFromStore")
public void insertFromStore(
HttpServletRequest request,
HttpServletResponse response){
StringBuffer json = new StringBuffer();
String line = null;
String orderMsg = "";
try {
BufferedReader reader = request.getReader();
while((line = reader.readLine()) != null) {
json.append(line);
}
orderMsg = json.toString();
}
catch(Exception e) {
logger.error(e);
}
if (StringUtil.isEmpty(orderMsg)){
this.setResultInfo("-1", "params error!").write(request, response);
return;
}
com.alibaba.fastjson.JSONObject jsonObject = null;
try {
//把String类型的json串转成Json Object对象
jsonObject = com.alibaba.fastjson.JSONObject.parseObject(orderMsg);
} catch (Exception e) {
this.setResultInfo("-1", "params error!").write(request, response);
return;
}
//门店渠道id
int storeMutilId = 46;
//各种取值
String mTel = jsonObject.getString("mTel");
String tranid = jsonObject.getString("tranid");
//取值,拿到json数组
com.alibaba.fastjson.JSONArray artiitem = jsonObject.getJSONArray("artiitem");
String tranDate = jsonObject.getString("tranDate");
String discount = jsonObject.getString("discount");
String deptName = jsonObject.getString("deptName");
String sumSaleAmt = jsonObject.getString("sumSaleAmt");
if(StringUtil.isEmpty(mTel)||StringUtil.isEmpty(tranid)||StringUtil.isEmpty(tranDate)||StringUtil.isEmpty
(discount)||StringUtil.isEmpty(deptName)||StringUtil.isEmpty(sumSaleAmt)){
this.setResultInfo("-1", "params error!").write(request, response);
return;
}
List<OrderItem> itemList = new ArrayList<OrderItem>();
//订单详情信息
//遍历json数组,取值,赋值
for (Object o : artiitem) {
OrderItem item = new OrderItem();
//转成String类型Json
String jsonStr = com.alibaba.fastjson.JSONObject.toJSONString(o);
//转成json格式
com.alibaba.fastjson.JSONObject itemJson = com.alibaba.fastjson.JSONObject.parseObject(jsonStr);
String artiCode = itemJson.getString("artiCode");
String artiQty = itemJson.getString("artiQty");
String saleAmt = itemJson.getString("saleAmt");
String salePrice = itemJson.getString("salePrice");
if(StringUtil.isEmpty(artiCode)||StringUtil.isEmpty(artiQty)||StringUtil.isEmpty(saleAmt)||StringUtil
.isEmpty(salePrice)){
this.setResultInfo("-1", "params error!").write(request, response);
return;
}
if(new BigDecimal(saleAmt).compareTo(new BigDecimal(salePrice).multiply(new BigDecimal(artiQty))) != 0){
this.setResultInfo("3", "单品金额校验失败").write(request, response);
return;
}
item.setGoodsNo(artiCode);
item.setGoodsPrice(new BigDecimal(salePrice));
item.setGoodsAmount(new BigDecimal(artiQty));
item.setGoodsSumFee(new BigDecimal(saleAmt));
itemList.add(item);
}
//订单信息
OrderInfo orderInfo = new OrderInfo();
orderInfo.setMemberMobile(mTel);
orderInfo.setMultiChannelId(storeMutilId);
orderInfo.setMultiChannelOrderId(Long.valueOf(tranid));
orderInfo.setOtherDiscounts(new BigDecimal(discount));
orderInfo.setFinishTime(tranDate);
orderInfo.setOrderFee(new BigDecimal(sumSaleAmt));
ServiceMessage<String> insertResult= null;
String resultMsg = ResultMsg.Common.OK;
try {
insertResult= orderInfoService.insertOrderInfoFromStore(orderInfo,itemList,deptName);
resultMsg = insertResult.getMessage();
} catch (Exception e) {
LOG.error(e.getMessage(), e);
resultMsg = ResultMsg.OrderActionMsg.INSERT_STORE_FAILURE;
} finally {
this.setResult(insertResult,
resultMsg).write(request,
response);
}
}
JSON格式的各种转换的更多相关文章
- C#JSON格式数据的转换
json格式字符串转化为json对象:JObject calculate = (JObject)JsonConvert.DeserializeObject(Rep.Request["data ...
- json中把非json格式的字符串转换成json对象再转换成json字符串
JSON.toJson(str).toString()假如key和value都是整数的时候,先转换成jsonObject对象,再转换成json字符串
- iOS开发之JSON转PLIST(把存储json格式的文件转换成plist文件)
p.p1 { margin: 0.0px 0.0px 0.0px 60.0px; font: 16.0px "PingFang SC"; color: #586e75 } p.p2 ...
- 把json格式的字符串转换成javascript对象或数组
第一种 JSON.parse(jsonString) 第二种 eval("("+jsonString+")") 第三种 var obj=(function ...
- json格式的时间转换
//yyyy-MM-dd HH:mm:SS function JsonDateToDate(jsondate) { var date = new Date(parseInt(jsondate.repl ...
- JSON格式日期的转换
扒来的链接: https://blog.csdn.net/zhang33565417/article/details/99676975 感谢这位哥们儿的分享!
- 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)
public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...
- json格式转换(json,csjon)(天气预报)
json格式数据默认为string,可以使用eval()函数或者json模块将其转换为dict.标准Json字符串必须使用双引号(")而不能使用单引号('),否则从字符串转换成dict类型会 ...
- json和php数组 格式的互相转换
$json_arr = array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.jb51.net'); $php_json = json ...
随机推荐
- [转] linux 下 进程和线程的区别
1.进程与线程 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流,是C ...
- assert实现
测试网站在国内国外的访问速度 关于C的右左法则 assert宏的实现(一道笔试题) 2010-11-09 13:05:48| 分类: c | 标签: |举报 |字号大中小 订阅 asser ...
- 【基础教程】推荐10+必备的 WordPress 常用插件
1.Akismet Akismet 是 WordPress 官方推荐的一款 WordPress 防垃圾评论插件,也是默认已安装的插件. 2.WP-Postviews 最好的最流行的WordPress浏 ...
- mysql 整形的长度问题
tinyint 有符号的范围是-128至127: 无符号的范围是0到255,2的8 次方-1: 存储大小为 1 字节. smallint 有符号的范围是-32768至32767: 无符号的范围是0 ...
- Css3做的旋转显示文字和角度的变化
Css: .spinner{ width:245px; height:245px; position:relative;}.coly{ border-radius:130px; font-size:1 ...
- delphi : 取得网页源码内容
取得网页的源码内容的函数以及调用方法供大家参考: program geturl; uses wininet, windows; //取网页内容 function StrPas(const Str: P ...
- OpenStack点滴01-概览
OpenStack项目由Rackspace和NASA(美国国家航空航天局)共同发起,它是一个旨在为公共及私有云的建设与管理提供软件的开源项目. 作为一个开源云平台,OpenStack的首要任务是简化云 ...
- Qweb报表中的Reload from Attachment参数
通过继承的方式修改了Qweb报表却发现没有生效,经查,其原因在于报表的设置中勾选了 Reload from Attachment 选项. 将本选项取消选中即可生效.
- LINQ 学习笔记(1)
学习资源参考 : http://www.cnblogs.com/lifepoem/archive/2011/12/16/2288017.html 常用方法是 Where, OrderBy, Selec ...
- ural 1348 Goat in the Garden 2
http://acm.timus.ru/problem.aspx?space=1&num=1348 #include <cstdio> #include <cstring&g ...