当前位置: 代码迷 >> Java Web开发 >> 急高分求java复杂对象到json的转换,该如何解决
  详细解决方案

急高分求java复杂对象到json的转换,该如何解决

热度:66   发布时间:2016-04-17 10:30:22.0
急!高分求java复杂对象到json的转换
我想使用json_lib实现服务器端和客户端的json通信

想构建成json对象是List<DBDialect> 但url username 不需要构建
其中List<? extends TableDescription> tables 对象中的TableDescription 是extends 的ResultTableDiscription
对象结构如下:
Java code
 class DBDialect{    private String url;        private String username;            private String driverClass;            private List<? extends TableDescription>  tables;        private String resultName;        。。。       }public class TableDescription {    //table的名称    private String tablename;        //table的描述    private String tableDes;        //属性数组    private String[] fields;}public class ResultTableDiscription extends TableDescription {    private Map<String, String> results = new HashMap<String, String>();}


构建的结果希望是类似于ext的store {{fields:{TableDescription 的fields数组,contant:{resultName:**,tables:{....}}}},{}}




------解决方案--------------------
webwork不是提供JSON lib了么!!
------解决方案--------------------
json-lib-1.0-jdk13.jar 这个系列的包都可以的
------解决方案--------------------
JSONArray ja = null;
List voList = null;
voList = JSONArray.toList(ja);


JSONArray.fromArray(Object)

大概这些方法应该可以了
------解决方案--------------------
贴一段公用的给大家:
Java code
/**     * 将OBJ用JSONObject来描述     * @param obj     * @return     */    public static JSONObject parseObjectToJSONObject(Object obj){        JSONObject jsonObject = JSONObject.fromObject(obj);        return jsonObject;    }    /**     * 将数组转为JSONArray格式     * @param objs     * @return     */    public static JSONArray parseArrayToJsonText(Object[] objs){        JSONArray jsonArray = JSONArray.fromObject(objs);           return jsonArray;    }    /**     * 将JSON格式的字符串转为JSON对象  格式:("['JSON','is','easy']")     * @param text     * @return     */    public static JSONArray  parseJsonTextToArray(String text){        JSONArray jsonArray = JSONArray.fromObject(text);           return jsonArray;    }    /**     * 将List集合转为JSONArray格式     * @param list     * @return     */    @SuppressWarnings("unchecked")    public static JSONArray parseListToJsonText(List list){        JSONArray jsonArray = JSONArray.fromObject(list);           return jsonArray;    }        /**     * 将Map集合转为JSON格式数据     * @param map     * @return     */    @SuppressWarnings("unchecked")    public static JSONObject parseMapToJsonText(Map map){        JSONObject json = JSONObject.fromObject(map);           return json;            }           //将JSON格式的字符串转为JAVABEAN    @SuppressWarnings({ "deprecation", "unchecked" })    public static Object format(String json,Class c){                JSONObject jb = JSONObject.fromString(json);           return JSONObject.toBean(jb, c);     }
------解决方案--------------------
你这特殊情况 特殊处理嘛 自己来拼装JSON格式的字符串!
  相关解决方案