有时候需要给前台返回一些json数据,或者一个json数组,通过json为我们提供的fromObject方法可以轻而易举的完整json数据的封装,但是但碰到一些联级属性(不知这样说妥不妥)时,例如记录时间的Date等,直接使用fromObject方法是会报错的,或者出现结果不是我们需要的格式的数据!
首先引入json的包,自己百度一下就好(我用的是json-lib),今天跟前辈请教时了解到了阿里云的一个fastjson这个包,还没有去研究,据说很强大,等我研究一下也会写一篇博客!(因为我都是一次导入很多个常用的包的,所以也不截图了,不过现在也渐渐开始用maven写项目了)
首先需要实现json为我们提供的JsonValueProcessor接口,指定Date类型的处理方式!代码来自百度
package com.loger.test; import java.text.SimpleDateFormat; import java.util.Date; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; public class JsonDateValueProcessor implements JsonValueProcessor { // 定义转换日期类型的输出格式 private String format = "yyyy-MM-dd"; public JsonDateValueProcessor() { } public JsonDateValueProcessor(String format) { this.format = format; } @Override public Object processArrayValue(Object arg0, JsonConfig arg1) { return process(arg0); } private Object process(Object arg0) { SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(arg0); } @Override public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { if (value instanceof java.util.Date) { String str = new SimpleDateFormat(format).format((Date) value); return str; } if (null != value) { return value.toString(); } return ""; } }
测试JSONArray:(后期说明:这里我不小心弄错了,要用大写的MM,小写表示分)
package com.loger.test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.loger.entity.UserDate; import net.sf.json.JSONArray; import net.sf.json.JsonConfig; public class JSONArrayTestForDate { public static List<UserDate> list = new ArrayList<>(); static { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); Date birthday; try { birthday = sdf.parse("1995-09-01"); System.out.println(birthday); list.add(new UserDate("chenle",birthday)); list.add(new UserDate("chenle",birthday)); list.add(new UserDate("chenle",birthday)); list.add(new UserDate("chenle",birthday)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig); System.out.println(jsonArray); } }
运行结果:
可以看到,日期已经按照指定的类型输出
测试JSONObject:
package com.loger.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import com.loger.entity.UserDate; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; public class JSONObjectTestForDate { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); UserDate user = new UserDate("chenle",sdf.parse("1995-09-01")); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); JSONObject jsonObject = new JSONObject(); jsonObject = JSONObject.fromObject(user,jsonConfig); System.out.println(jsonObject); } }
运行结果:
下面在测试不处理格式的结果:
不处理的结果也是这样的
另外说一下:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); User user = new User("chenle",sdf.parse("1995-09-01"));
日期的输入要用到以上格式,new Date("1995-09-01")这种方式显示已过期,而且会报错!
相关推荐
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而BEAN(JavaBean)是Java编程中的一个概念,代表具有特定规则的Java类,通常用作数据容器。将JSON转换为BEAN或者反之,是...
JSON(JavaScript Object Notation)和Java Bean是两种广泛使用的数据表示格式。在Java开发中,经常需要将JSON字符串转换为Java Bean对象,反之亦然,以便于数据的序列化和反序列化。这篇博客(虽然链接无法在此提供...
json字符串实体bean或者List<bean>互转(gson和jackson,支持泛型),支持json的格式化,所需要的包在代码也有说明。还有少的可以告知我,谢谢
在实际开发中,有许多现成的库和工具可以帮助进行JSON和XML的互转,如JavaScript中的`xml2js`库和`json-stringify-safe`库,Python中的`xmltodict`和`json`模块等。压缩包中的`xmlTojson`可能是一个简单的实现,用于...
支持Bean转JSON List<> 转JSON
在Java中,将Bean转换为Json Schema可以帮助我们在服务器端验证客户端发送的数据是否符合预设的模式,避免因数据格式错误导致的问题。这种转换通常通过一些库或工具来实现,例如`json-schema-generator`或`org.json...
有还在用delphi7的同志们没,d7没有提供json和dataset的互转, 该方法是网上其他大神写的,我转发,只是原来的代码有几个缺陷,我进行了修改:1.原来不能识别字段类型;2.原来的转换是把所有字段长度都设置为字符型...
在Java开发中,将Java Bean转换为JSON对象是一项常见的任务,特别是在处理前后端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Java Bean则...
在Java开发中,处理JSON数据是一项常见的任务,而Gson和JsonBean是两个常用的库,用于将Java对象转换为JSON格式以及将JSON字符串反序列化为Java对象。本篇文章将详细探讨这两个库的使用方法,并通过一个具体的案例来...
总的来说,"json和xml互转.jar"是一个实用的开发工具,旨在通过提供便捷的JSON到XML以及XML到JSON的转换服务,帮助开发者节省时间和精力,专注于他们的核心业务逻辑。随着JSON和XML在各种应用程序和API中的广泛应用...
JSON转换为JAVA对象及日期格式转换处理 -
在项目中,我们通常会使用`Jackson`或`Gson`这样的现代库来处理JSON与Java对象的转换,因为它们提供了更丰富的功能和更好的性能。然而,了解如何使用JSON-lib进行转换仍然是有价值的,尤其是在处理旧代码或特定场景...
总的来说,这个"(Java)json和String互转必备Jar包"为Java开发者提供了一个便捷的工具,使他们能够在项目中方便地处理JSON数据,无论是从网络获取,还是在本地存储和处理。掌握好这些库的使用,对于提升开发效率和...
总的来说,“json_xml互转jar”涉及的是Web开发中常见的数据格式转换问题,通过Java的JAR库,我们可以方便地在JSON和XML之间进行数据交换,满足不同场景的需求。理解和掌握这些转换技术,有助于提升开发效率,同时也...
在现代软件开发中,尤其是在Web服务和前后端分离架构中,JSON(JavaScript Object Notation)作为数据交换格式的重要性日益凸显。它简洁、轻量且易于人阅读,使得它成为APIs和配置文件中的首选。Java Bean则是Java中...
原生的java代码,用java代码实现json转换成java类bean对象,生成文件在当前类的同级目录
描述中的“json 与 object 简单互转”意味着这个工具提供了简单的API,使得开发者可以轻松地在JSON和Java对象之间进行转换。它包含“实例代码”,这意味着提供了具体的示例,帮助开发者了解如何在实际项目中使用这个...
在Delphi编程环境中,数据集(Dataset)是用于存储和管理结构化数据的核心组件,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于网络数据传输。将Delphi的数据集与JSON进行互转是开发...
本压缩包“JS实现XML转JSON格式互转”提供了JavaScript库来实现在两者之间的转换,这在处理服务器与前端交互或存储数据时非常有用。 首先,我们来看"xmldom"这个文件。XML DOM(Document Object Model)是W3C的一个...
上个版本的有bug,这个版本进行修正,已经完美了,有心的可以简化一下,很多重复代码和类似的功能