{
"inserted":[],
"updated":[],
"deleted":[
{
"paramName":"123",
"parentParamName":"12312312",
"constraints":"?",
"dataType":"int",
"length":"123",
"paramChname":"12312312",
"describe":"3123123132321"
}
]}

解决方案 »

  1.   

    手动的话只有字符串解析了,要不然就试试json的框架,例如jsonplugin或者jsonlib
      

  2.   

    建议使用java的反射,将你要赋值的bean传进去,让他自动寻找属性进行赋值
      

  3.   

    private Object[] beanMatch(Class clazz, String beanProperty) {   
           Object[] result = new Object[2];   
           char beanPropertyChars[] = beanProperty.toCharArray();   
           beanPropertyChars[0] = Character.toUpperCase(beanPropertyChars[0]);   
           String s = new String(beanPropertyChars);   
           String names[] = { ("set" + s).intern(), ("get" + s).intern()};   
           Method getter = null;   
           Method setter = null;   
           Method methods[] = clazz.getMethods();   
           for (int i = 0; i < methods.length; i++) {   
               Method method = methods[i];   
               if (!Modifier.isPublic(method.getModifiers()))   
                   continue;   
               String methodName = method.getName().intern();   
               for (int j = 0; j < names.length; j++) {   
                   String name = names[j];   
                   if (!name.equals(methodName))   
                       continue;   
                   if (methodName.startsWith("set"))   
                       setter = method;   
                   else  
                       getter = method;   
               }   
           }   
           result[0] = getter;   
           result[1] = setter;   
           return result;   
       }   
    //通过反射机制将不同类型类型进行数据绑定
    private void beanRegister(Object object, String beanProperty, String value) {   
           Object[] beanObject = beanMatch(object.getClass(), beanProperty);   
           Object[] cache = new Object[1];   
           Method getter = (Method) beanObject[0];   
           Method setter = (Method) beanObject[1];   
           try {   
               // ͨ��get��÷�������   
               String methodType = getter.getReturnType().getName();   
               if (methodType.equalsIgnoreCase("long")) {   
                   cache[0] = new Long(value);   
                   setter.invoke(object, cache);   
               } else if (methodType.equalsIgnoreCase("int")   
                       || methodType.equalsIgnoreCase("integer")) {   
                   cache[0] = new Integer(value);   
                   setter.invoke(object, cache);   
               } else if (methodType.equalsIgnoreCase("short")) {   
                   cache[0] = new Short(value);   
                   setter.invoke(object, cache);   
               } else if (methodType.equalsIgnoreCase("float")) {   
                   cache[0] = new Float(value);   
                   setter.invoke(object, cache);   
               } else if (methodType.equalsIgnoreCase("double")) {   
                   cache[0] = new Double(value);   
                   setter.invoke(object, cache);   
               } else if (methodType.equalsIgnoreCase("boolean")) {   
                   cache[0] = new Boolean(value);   
                   setter.invoke(object, cache);   
               } else if (methodType.equalsIgnoreCase("java.lang.String")) {   
                   cache[0] = value;   
                   setter.invoke(object, cache);   
               } 
               else if (methodType.equalsIgnoreCase("java.sql.Date")) { 
                   DateFormat fmt =new SimpleDateFormat("yyyy-mm-dd hh:mm");            
                   Date date = fmt.parse(value);
                   cache[0] = value;   
                   setter.invoke(object, cache);   
               }
               else if (methodType.equalsIgnoreCase("java.util.Date")) { 
                   cache[0] = value;   
                   setter.invoke(object, cache);   
               }else if (methodType.equalsIgnoreCase("java.io.InputStream")) {   
               } else if (methodType.equalsIgnoreCase("char")) {   
                   cache[0] = (Character.valueOf(value.charAt(0)));   
                   setter.invoke(object, cache);   
               }   
           } catch (Exception e) {   
               e.printStackTrace();   
           }   
       }       public Collection get(final Class clazz, final ResultSet result) {   
           Collection collection = null;   
           try {   
               ResultSetMetaData rsmd = (ResultSetMetaData) result.getMetaData();   
               int cols = rsmd.getColumnCount();     
               collection = new ArrayList(cols);   
               while (result.next()) {   
                   Object object = null;   
                   try {    
                       object = clazz.newInstance();   
                   } catch (Exception e) {   
                   }   
                   for (int i = 1; i <= cols; i++) {
                    String s=result.getString(i)==null?"":result.getString(i);
                       beanRegister(object, rsmd.getColumnName(i), s);   
                   }   
                   collection.add(object);   
               }   
           } catch (SQLException e) {   
               System.err.println(e.getMessage());   
           } finally {   
      
           }   
           return collection;   
       }
    给你个参考吧
      

  4.   

    调用get方法的时候传进去你要赋值的bean