- 浏览: 520492 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (422)
- 重要 (12)
- BUG解决备忘录 (32)
- 环境搭建 (17)
- 开源组件 (4)
- 数据库 (16)
- 设计模式 (4)
- 测试 (3)
- javascript (5)
- Android (14)
- jdk相关 (9)
- struts2 (10)
- freemark (3)
- 自定义扩展及工具类 (5)
- jdk5新特性及java基础 (13)
- ssh及其他框架 (15)
- linux (32)
- tcp-ip http协议 (8)
- 服务器集群与负载均衡 (34)
- 项目管理相关 (11)
- 实用小技术 (10)
- 架构相关 (14)
- firefox组件 (11)
- spider (6)
- 产品设计 (11)
- PHP (1)
- ws (4)
- lucene (10)
- 其他 (2)
- BI (1)
- NoSQL (3)
- gzip (1)
- ext (4)
- db (6)
- socket (1)
- 源码阅读 (2)
- NIO (2)
- 图片处理 (1)
- java 环境 (2)
- 项目管理 (4)
- 从程序员到项目经理(一):没有捷径 (1)
- bug (1)
- JAVA BASE (8)
- 技术原理 (0)
- 新框架新技术 (1)
- 量化与python (1)
- 系统编程 (0)
- C语言 (0)
- 汇编 (0)
- 算法 (0)
最新评论
-
hyspace:
别逗了,最后一个算法根本不是最优的,sort(function ...
数组去重——一道前端校招试题 -
washingtin:
楼主能把策略和路由的类代码贴出来吗
Spring + iBatis 的多库横向切分简易解决思路 -
sdyjmc:
初略看了一下,没有闹明白啊,均衡负载使用Nginx,sessi ...
J2EE集群原理 I -
shandeai520:
谢谢大神!请教大神一个问题:假如我有三台服务器,连接池的上限是 ...
集群和数据库负载均衡的研究 -
hekuilove:
给lz推荐一下apache commonsStringUtil ...
request 获取 ip
自己编写了一个工具类,处理页面提交json格式数据到后台,再进行处理成JAVA对象数据
1、DTO:Data Transfer Object,数据传送对象
2、对于日期格式的问题,也已经处理
3、json-lib-2.2.2-jdk13.jar (2.1在日期数组 json->java有问题)
工具类JsonUtil代码如下:
- public class JsonUtil {
- /**页面传至后台时,json数据在request的参数名称*/
- public final static String JSON_ATTRIBUTE = "json" ;
- public final static String JSON_ATTRIBUTE1 = "json1" ;
- public final static String JSON_ATTRIBUTE2 = "json2" ;
- public final static String JSON_ATTRIBUTE3 = "json3" ;
- public final static String JSON_ATTRIBUTE4 = "json4" ;
- /**
- * 从一个JSON 对象字符格式中得到一个java对象,形如:
- * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}}
- * @param object
- * @param clazz
- * @return
- */
- public static Object getDTO(String jsonString, Class clazz){
- JSONObject jsonObject = null ;
- try {
- setDataFormat2JAVA();
- jsonObject = JSONObject.fromObject(jsonString);
- }catch (Exception e){
- e.printStackTrace();
- }
- return JSONObject.toBean(jsonObject, clazz);
- }
- /**
- * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:
- * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...},
- * beansList:[{}, {}, ...]}
- * @param jsonString
- * @param clazz
- * @param map 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: ("beansList" : Bean.class)
- * @return
- */
- public static Object getDTO(String jsonString, Class clazz, Map map){
- JSONObject jsonObject = null ;
- try {
- setDataFormat2JAVA();
- jsonObject = JSONObject.fromObject(jsonString);
- }catch (Exception e){
- e.printStackTrace();
- }
- return JSONObject.toBean(jsonObject, clazz, map);
- }
- /**
- * 从一个JSON数组得到一个java对象数组,形如:
- * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]
- * @param object
- * @param clazz
- * @return
- */
- public static Object[] getDTOArray(String jsonString, Class clazz){
- setDataFormat2JAVA();
- JSONArray array = JSONArray.fromObject(jsonString);
- Object[] obj = new Object[array.size()];
- for ( int i = 0 ; i < array.size(); i++){
- JSONObject jsonObject = array.getJSONObject(i);
- obj[i] = JSONObject.toBean(jsonObject, clazz);
- }
- return obj;
- }
- /**
- * 从一个JSON数组得到一个java对象数组,形如:
- * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]
- * @param object
- * @param clazz
- * @param map
- * @return
- */
- public static Object[] getDTOArray(String jsonString, Class clazz, Map map){
- setDataFormat2JAVA();
- JSONArray array = JSONArray.fromObject(jsonString);
- Object[] obj = new Object[array.size()];
- for ( int i = 0 ; i < array.size(); i++){
- JSONObject jsonObject = array.getJSONObject(i);
- obj[i] = JSONObject.toBean(jsonObject, clazz, map);
- }
- return obj;
- }
- /**
- * 从一个JSON数组得到一个java对象集合
- * @param object
- * @param clazz
- * @return
- */
- public static List getDTOList(String jsonString, Class clazz){
- setDataFormat2JAVA();
- JSONArray array = JSONArray.fromObject(jsonString);
- List list = new ArrayList();
- for (Iterator iter = array.iterator(); iter.hasNext();){
- JSONObject jsonObject = (JSONObject)iter.next();
- list.add(JSONObject.toBean(jsonObject, clazz));
- }
- return list;
- }
- /**
- * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性
- * @param object
- * @param clazz
- * @param map 集合属性的类型
- * @return
- */
- public static List getDTOList(String jsonString, Class clazz, Map map){
- setDataFormat2JAVA();
- JSONArray array = JSONArray.fromObject(jsonString);
- List list = new ArrayList();
- for (Iterator iter = array.iterator(); iter.hasNext();){
- JSONObject jsonObject = (JSONObject)iter.next();
- list.add(JSONObject.toBean(jsonObject, clazz, map));
- }
- return list;
- }
- /**
- * 从json HASH表达式中获取一个map,该map支持嵌套功能
- * 形如:{"id" : "johncon", "name" : "小强"}
- * 注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap
- * @param object
- * @return
- */
- public static Map getMapFromJson(String jsonString) {
- setDataFormat2JAVA();
- JSONObject jsonObject = JSONObject.fromObject(jsonString);
- Map map = new HashMap();
- for (Iterator iter = jsonObject.keys(); iter.hasNext();){
- String key = (String)iter.next();
- map.put(key, jsonObject.get(key));
- }
- return map;
- }
- /**
- * 从json数组中得到相应java数组
- * json形如:["123", "456"]
- * @param jsonString
- * @return
- */
- public static Object[] getObjectArrayFromJson(String jsonString) {
- JSONArray jsonArray = JSONArray.fromObject(jsonString);
- return jsonArray.toArray();
- }
- /**
- * 把数据对象转换成json字符串
- * DTO对象形如:{"id" : idValue, "name" : nameValue, ...}
- * 数组对象形如:[{}, {}, {}, ...]
- * map对象形如:{key1 : {"id" : idValue, "name" : nameValue, ...}, key2 : {}, ...}
- * @param object
- * @return
- */
- public static String getJSONString(Object object) throws Exception{
- String jsonString = null ;
- //日期值处理器
- JsonConfig jsonConfig = new JsonConfig();
- jsonConfig.registerJsonValueProcessor(java.util.Date.class , new JsonDateValueProcessor());
- if (object != null ){
- if (object instanceof Collection || object instanceof Object[]){
- jsonString = JSONArray.fromObject(object, jsonConfig).toString();
- }else {
- jsonString = JSONObject.fromObject(object, jsonConfig).toString();
- }
- }
- return jsonString == null ? "{}" : jsonString;
- }
- private static void setDataFormat2JAVA(){
- //设定日期转换格式
- JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher( new String[] { "yyyy-MM-dd" , "yyyy-MM-dd HH:mm:ss" }));
- }
- public static void main(String[] arg) throws Exception{
- String s = "{status : 'success'}" ;
- System.out.println(" object : " + JsonUtil.getJSONString(s));
- }
- }
对于java对象转换成json数据格式时,要对日期格式化常用格式,类:JsonDateValueProcessor
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import net.sf.json.JsonConfig;
- import net.sf.json.processors.JsonValueProcessor;
- /*
- * @author johncon
- * 创建日期 2008-9-10
- * json日期值处理器
- */
- public class JsonDateValueProcessor implements JsonValueProcessor {
- private String format = "yyyy-MM-dd HH:mm:ss" ;
- public JsonDateValueProcessor() {
- }
- public JsonDateValueProcessor(String format) {
- this .format = format;
- }
- public Object processArrayValue(Object value, JsonConfig jsonConfig) {
- return process(value, jsonConfig);
- }
- public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
- return process(value, jsonConfig);
- }
- private Object process( Object value, JsonConfig jsonConfig ) {
- if (value instanceof Date) {
- String str = new SimpleDateFormat(format).format((Date) value);
- return str;
- }
- return value == null ? null : value.toString();
- }
- public String getFormat() {
- return format;
- }
- public void setFormat(String format) {
- this .format = format;
- }
- }
对于对象中有明确类型的对象属性,可不管;但对象中有集合属性的,由于类型不明确,所以要先明确类型:
- String jsonString = request.getParameter( "json" );
- //增加对象中的集合属性的类型以及对象元素中的对象属性的集合属性的类型
- Map clazzMap = new HashMap();
- //secondItems是FirstDTO里的集合属性
- clazzMap.put("secondItems" , SecondDTO. class );
- //thirdItems是SecondDTO里的集合属性
- clazzMap.put("thirdItems" , ThirdDTO. class );
- FirstDTO firstDTO = (FirstDTO)JsonUtil.getDTO(jsonString, FirstDTO.class , clazzMap);
大家若对此类存意见、问题或建议,欢迎指出、指正,谢谢
发表评论
-
PO、VO、DAO、BO、POJO分别是什么?
2012-11-20 10:32 757PO:persistant object持久对 ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2012-03-30 20:57 796这个问题是我的工程中加入了Birt报表在Linux环境下运行出 ... -
Bean Validation 技术规范特性概述
2012-03-18 20:52 1185http://www.ibm.com/developerwor ... -
java List 排序 Collections.sort() 对 List 排序
2011-08-31 04:07 757//一个POJO例子 class User { Stri ... -
jdk5.0中出现的新特性
2011-02-25 12:09 755泛型(Generics) 注释 (annocation) ... -
关于 Java 对象序列化 5 件事
2011-02-22 20:45 843数年前,当和一个软件团队一起用 Java 语言编写一个应用程序 ... -
对象的序列化和反序列化
2011-02-22 20:39 845当两个进程在进行远程 ... -
我对Java Serializable(序列化)的理解和总结
2011-02-22 20:30 9141、序列化是干什么的? 简单说就是为 ... -
Java Annotation手册
2011-02-22 01:33 647作者:cleverpig(作者的Blog:http://blo ... -
Java Annotation入门
2011-02-22 01:32 850版权声明:本文可以自由转载,转载时请务必以超链接形式标明文章原 ... -
实战篇:设计自己的Annotation
2011-02-22 01:22 1100Annotation在java的世界正铺天盖地展开,有空 ... -
JDK1.5 注解(Annotations)[转]
2011-02-21 23:27 910其实说起注解语法,对于任何一个Java开发人员来说都已经耳熟能 ...
相关推荐
1. 首先,我们需要一个Java类来映射JSON数据。例如,我们有一个User类,包含id、name和email字段: ```java public class User { private int id; private String name; private String email; // 构造函数、...
java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java list 转换为json数据java ...
总的来说,JSON与Java数据的相互转换是Web开发中的常见任务,理解并熟练掌握这些转换方法对于提升开发效率至关重要。开发者应根据项目需求和团队习惯选择合适的JSON处理库,并确保在处理过程中正确处理可能的异常,...
附件内容为:Java组装map数据,然后转换为json数据格式;Java解析json数据
在JAVA开发中,处理JSON数据通常需要借助特定的库来完成,如本话题中提到的`json-lib`和`ezmorph`。 `json-lib`是一个Java语言实现的JSON库,它提供了多种数据类型到JSON的转换,包括JavaBean、Map、List、数组等。...
在Java后端,我们可以通过上述方式将处理后的数据转换成JSON格式,然后传递给前端的Echarts进行渲染。 总结一下,JSON与Java对象之间的相互转换是Java开发中常见的任务。通过使用Gson或Jackson这样的库,我们可以...
而“JSON与JAVA数据的转换_files”可能是相关的辅助资源或示例代码。 总之,理解并掌握Java与JSON之间的转换是Java开发者必备的技能,这有助于更好地进行数据交互和处理。通过选择合适的库,并熟悉其API,可以在...
本教程将深入探讨JSON与Java之间的数据转换,包括JSON对象到Java对象以及Java对象到JSON对象的转换。 首先,为了进行JSON操作,我们需要导入相应的库。在Java中,我们以Jackson库为例,添加以下依赖到项目中: ```...
Java Bean转换为Json Schema是一种常见的数据转换操作,特别是在开发基于RESTful API的Web服务时,因为JSON Schema提供了数据验证和文档化的功能。Java Bean是Java编程中的一个概念,它是一类具有特定规则的POJO...
在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于服务器与客户端之间传递数据。Java作为一种常用的后端...熟练掌握JSON数据与Java对象之间的转换技巧,对提升开发效率至关重要。
### Java中任何类型转换成JSON数据格式 #### 一、简介 在现代Web开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java应用中,经常会遇到...
Java 后台生成 JSON 数据是现代 Web 应用开发中的常见任务,特别是在与前端框架如 EXT 进行数据交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于机器解析...
在处理JSON数据时,我们依赖于库,如Jackson或Gson,它们能将Java对象转换为JSON字符串,反之亦然。理解JSON的结构和这些库的工作原理,有助于我们编写出更高效的代码。 Jackson库提供了一系列的注解,如`@...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,...例如,如果你正在开发一个Web应用,你可以先将用户提交的JSON数据转换为JSON Schema,然后用它来验证后续的数据输入,防止因数据不合规导致的问题。
### Java 数据格式转换成 JSON 的全面解析 #### 一、JSON 概述 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,最初由 Douglas Crockford 提出。它基于 JavaScript 的语法,但独立于任何编程语言...
本Java类实现了将标准的json字符串转换成map,并将数据解析到Excel的方法,本方法简单实用,可以批量导出数据到Excel文档中
对于Java Web服务端获取JSON数据,通常涉及到Servlet、JSP或Spring MVC等框架。当客户端通过HTTP请求发送JSON数据时,服务端需要解析这些数据。例如,在Servlet中,可以使用HttpServletRequest的getInputStream方法...
在Java中,处理JSON数据通常依赖于第三方库,如Jackson、Gson或org.json。这些库提供了将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象的功能。项目源代码可能会包含如何创建JSON对象、解析JSON...
2. 使用诸如net.sf.json JSONObject类(一个流行的Java库,用于处理JSON数据)来将JSON格式字符串转换为JSON对象。转换后,服务端可以通过指定的键(key)来获取JSON对象中的值。 3. 在Java客户端,调用WebService...