/**
         *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格式的各种转换的更多相关文章

  1. C#JSON格式数据的转换

    json格式字符串转化为json对象:JObject calculate = (JObject)JsonConvert.DeserializeObject(Rep.Request["data ...

  2. json中把非json格式的字符串转换成json对象再转换成json字符串

    JSON.toJson(str).toString()假如key和value都是整数的时候,先转换成jsonObject对象,再转换成json字符串

  3. 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 ...

  4. 把json格式的字符串转换成javascript对象或数组

      第一种 JSON.parse(jsonString) 第二种 eval("("+jsonString+")") 第三种 var obj=(function ...

  5. json格式的时间转换

    //yyyy-MM-dd HH:mm:SS function JsonDateToDate(jsondate) { var date = new Date(parseInt(jsondate.repl ...

  6. JSON格式日期的转换

    扒来的链接: https://blog.csdn.net/zhang33565417/article/details/99676975 感谢这位哥们儿的分享!

  7. 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)

    public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...

  8. json格式转换(json,csjon)(天气预报)

    json格式数据默认为string,可以使用eval()函数或者json模块将其转换为dict.标准Json字符串必须使用双引号(")而不能使用单引号('),否则从字符串转换成dict类型会 ...

  9. json和php数组 格式的互相转换

    $json_arr = array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.jb51.net');  $php_json = json ...

随机推荐

  1. ESXi控制台TSM:弥补vSphere Client不足

    当vSphere Client不能完成某些任务时,主机的ESXi控制台及其技术支持模式(TSM)可能能派上用场. ESXi控制台允许管理员执行不能通过vSphere Client进行配置的管理任务,比 ...

  2. 商务智能(BI)技术

    以下内容仅为兴趣爱好. 商务智能技术是将数据仓库.联机分析处理(OLAP)和数据挖掘等结合起来应用到商业活动中,从不同的数据源收集数据,经过抽取(Extract).转换(Transform)和加载(L ...

  3. VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程 转载

    VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程     转载 #include <stdio.h>#include &l ...

  4. ionic开发环境搭建

    Advanced HTML5 mobile development framework and SDK. Build incredible mobile apps with web technolog ...

  5. swing——JFrame基本操作

    用JFrame(String String1)创建一个窗口 public void setBounds(int a,int b,int width,int height)设置窗口初始化的位置(a,b) ...

  6. phpcms v9二次开发之数据模型类

    系统模型类:model.class.php数据模型类的位置:/phpcms/libs/classes phpcms v9二次开发中,我们要经常需要对模块的数据表进行查询.添加.修改和删除数据等操作,所 ...

  7. WordPress社会化评论插件多说、有言、灯鹭、评论啦

    社会化登录是指网站的用户通过使用QQ.人人网.腾讯微博.新浪微博等社会化媒体账号登录该网站,并让用户能够使用社会化媒体账号进行允许的操作,如评论.分享等.经过简单的代码整合,社会化媒体账号可以在第三方 ...

  8. Js正则表达式提取图片地址

    JavaScript使用正则表达式和Replace两种方法提取IMG标签图片地址,代码如下: /正则表达式 <script language="javascript"> ...

  9. C++服务器linux开发环境管理

    在游戏服务器开发中,跨平台不是必须的.线上游戏既有windows下的C++..Net服务器也有linux下的C++.go.erlang服务器.但是无论如何都要保证开发环境和线上运行环境的一致,否则不同 ...

  10. ios对SQLite3的使用

    ios对SQLite3的使用 一.在Firefox中打开sqlite3(如果没有,选择工具->附加组件,添加即可)新建sqlite3数据库,Contacts, 建立一个members表,字段 i ...