zoukankan      html  css  js  c++  java
  • json 使用中代码复制

    js中

    数组的使用
    var array = new Array();
    var obj = {};
    obj.number=number;
     array.push(obj);
     
    if(r){
                    var parameter = getFormParm("#bodyDiv :input");
                    parameter.array = array;
                    var jsonStr=JSON.stringify(parameter); 
                    $.ajax({
                        type : "post",
                        dataType : "json",
                        data : {
                            jsonStr : jsonStr
                        },
                        url : "recipe.do?method=save",
                        success : function(data) {
                            $.messager.alert("提示", "操作成功");
                            $("#companyNo").val('');
                            $("#nhc01_editInfoDiv :input,textarea").val('');
                                $("#seridNumber").val(data.serid);    
                                $("#versions").val(data.versions);    
                                $("#receptumDiv").html('<fieldset><table id="drugInfo" style=" 900px;font-size: 12px;" border="0" align="center"><tr align="center"><th>药名</th><th>数量</th><th>单价</th><th>小计</th><th>用法</th><th>操作</th></tr></table></fieldset>');
                        }
                    });
                }

    action中

    public @ResponseBody
        SeridNumber recipeSave(HttpServletRequest request, String jsonStr){    
                JSONObject jsonObj = new JSONObject(jsonStr);
            Recipe recipe = new Recipe();
            recipe.setId(jsonObj.optString("id"));
            setValueFromJson(jsonObj, recipe);// JSON类型转换成 对象
            JSONArray jsonArray = jsonObj.optJSONArray("array"); // 获得前面传过来的array 变量
            
            /**
                 * 保存单据下面的药品
                 * */
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject obj = jsonArray.optJSONObject(i);
                    if (obj.length() == 0) {
                        continue;
                    }
                    String drugName = obj.optString("drugName");
                    String numbers = obj.optString("number");
                    String unitPrice = obj.optString("unitPrice");
                    String subtotal = obj.optString("subtotal");
                    String usage = obj.optString("usage");
                    RecipeMedical recipeMedical = new RecipeMedical(recipeId,
                            drugName, numbers, unitPrice, subtotal, usage);
                    recipeMedical.setDelFlag("0");
                    
                    recipeMedicalBO.saveRecipeMedical(recipeMedical);
                }
            }
            
            //将JSON转换成对像
        private Object setValueFromJson(JSONObject jsonObj, Object object)
                throws IllegalArgumentException, IllegalAccessException,
                InvocationTargetException, ParseException {
            if (jsonObj == null || object == null || jsonObj.length() == 0) {
                return null;
            }
            Method[] methods = object.getClass().getMethods();
            for (Method m : methods) {
                String mName = m.getName();
    
                if (!mName.startsWith("set")) {
                    continue;
                }
                String firstLetter = mName.substring(3, 4);
                String otherLetter = mName.substring(4);
    
                String name = firstLetter.toLowerCase() + otherLetter;
                String value = jsonObj.optString(name);
                // 从JSON中解析出数据
                if (value.trim().equals("")) {
                    continue;
                }
    
                Class[] parasClass = m.getParameterTypes();
    
                if (parasClass.length != 1) {
                    continue;
                }
                // 判断方法参数类型
                String paraType = parasClass[0].getName();
                if (paraType.equals("java.lang.String")) {
                    m.invoke(object, value);
                } else if (paraType.equals("java.lang.Integer")) {
                    m.invoke(object, Integer.parseInt(value));
                } else if (paraType.equals("java.math.Bigdecimal")) {
                    m.invoke(object, new BigDecimal(value));
                }
            }
            return object;
        }

    主要用了类型转换用的

    宝贝网址:

  • 相关阅读:
    [转]eclipse转idea, 快捷键设置
    钻牛角尖还是走进死胡同--shell脚本根据名称获得 dubbo 服务的 pid
    SmartSVN has inconsistent newlines解决方法
    解决Mac java.net Local host name unknown error的方法
    Jenkins持续集成环境, 如何自定义 maven repositories
    如何用dat批处理文件关闭某端口对应程序-Windows自动化命令
    ionic 总结
    window resize的时候禁止频繁触发事件
    AJAX工作原理及其优缺点
    利用JS提交表单的几种方法和验证
  • 原文地址:https://www.cnblogs.com/W203654/p/2652508.html
Copyright © 2011-2022 走看看