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;
        }

    主要用了类型转换用的

    宝贝网址:

  • 相关阅读:
    理解mipi协议【转】
    Using KernelShark to analyze the real-time scheduler【转】
    内核栈溢出【转】
    检测内核的堆栈溢出【转】
    gcc 编译 + 选项【转】
    service mysqld start 报错:service mysqld start 报错 090517 13:34:15 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 090Can't open the mysql.plugin table. Please run mysql
    【推荐】MySQL Cluster报错及解决方法(不断更新中)
    MySQL Cluster 配置文件(config.ini)详解
    关于MySQL Cluster集群NoOfReplicas参数问题
    通过PHP current()函数获取未知字符键名数组第一个元素的值
  • 原文地址:https://www.cnblogs.com/W203654/p/2652508.html
Copyright © 2011-2022 走看看