当前台以JSON格式向后台传递数据的时候,对于数据中的日期属性,无法正常转换为相应的Date属性。
JSON数据是这样的:
{"birthday":"1980/01/01","name":"testname"}
要转换成的类是这样的:
转换的代码是这样的:
JSONObject jsonPerson = JSONObject.fromObject(personData); //personaData是json串
Person person = (Person)JSONObject.toBean(jsonPerson, Person.class);
转换时并不抛出例外,而是在日志中打出以下警告信息:
Can't transform property 'birthday' from java.lang.String into java.util.Date. Will register a default Morpher
解决方法:
JSONObject jsonPerson = JSONObject.fromObject(personData);
String[] dateFormats = new String[] {"yyyy/MM/dd"};
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
Person person = (Person)JSONObject.toBean(jsonPerson, Person.class);
想深究原因的人可以参看json-lib和ezmorpher的相关文档。
分享到:
相关推荐
这个版本的库解决了在Java中将Java对象转换为JSON对象以及反向转换的问题,特别是对于特定数据结构如`JsonObject`和`JsonArray`的处理。 描述中提到的`JsonObject.fromObject()`方法是json-lib中用来将一个Java对象...
2. **Java对象到JSON的转换**:json-lib支持将Java对象如HashMap、ArrayList等直接转换成JSON格式,如`JSONObject.fromObject()`和`JSONArray.fromObject()`方法。 3. **JSON到Java对象的反序列化**:反之,它也...
`json-lib`库的使用使得Java开发者在处理JSON数据时更加便捷,但需要注意的是,随着Java生态的发展,现在更流行的是使用Jackson、Gson或Google的AutoValue库来处理JSON,它们提供了更多特性和更好的性能。...
2. **XML与JSON互转**:json-lib还支持XML与JSON之间的转换,这在处理不同数据格式时非常有用。 3. **自定义序列化**:通过实现JSONAware接口或使用JSONSerializer的transform方法,开发者可以定制JSON序列化过程,...
在使用JSON-lib时,开发者通常会先创建一个JSON对象,如JSONObject或JSONArray,然后通过调用其方法来添加、修改或删除元素。对于复杂的Java对象,可以使用`net.sf.json.JSONObject.fromObject()`和`...
User user = JSONObject.toBean(new JSONTokener(jsonString), User.class); ``` 4. **扩展支持**:如果需要处理自定义类型,可以实现`net.sf.json.JSONObject`和`net.sf.json.JSONArray`的子类,或者使用注解来...
3. 将JSON转换为Java对象:通过`JSONObject.toBean()`或`JSONArray.toList()`方法将JSON数据转换回Java对象。 4. JSON的解析与生成:可以使用`JSONObject.parse()`解析JSON字符串,用`JSONObject.toString()`生成...
7. **API简洁易用**:json-lib的API设计简洁明了,易于理解和使用,比如`JSONArray.fromObject()`和`JSONObject.toBean()`等方法。 总的来说,`json-lib`是一个强大且灵活的JSON处理工具,对于Java开发者来说,无论...
例如,将一个Java对象转换为JSON字符串可以使用`JSONObject.fromObject(object)`方法,而将JSON字符串解析回Java对象则可以使用`JSONObject.toBean(jsonString, Class)`方法。 需要注意的是,虽然`json-lib`在过去...
`将JSON对象转换为字符串,而`Map, Object> map = JSONObject.toBean(JSONObject.fromObject(jsonString));`则将JSON字符串反序列化为Java Map。 4. **XML与JSON的转换**:JSON-Lib还提供了XML和JSON之间的转换功能...
- json-lib不支持Java 8及更高版本的新特性,如日期时间API,因此在处理这些新类型时可能需要额外的转换步骤。 - 考虑到性能和功能的提升,对于新的项目,推荐使用更新的JSON库。 总之,json-lib 2.4作为一个经典...
如果你接收到一个JSON字符串,你可以使用`JSONObject.toBean()`或`JSONArray.toList()`方法将它转换回相应的Java对象,如HashMap、ArrayList或其他自定义类的实例。 3. **处理数组和集合**:JSON-Lib支持将Java的...
4. JSON解析:使用`JSONObject.toBean()`或`JSONArray.toList()`方法将JSON数据转换为Java对象或列表。 5. 输出JSON:可以使用`toString()`方法将JSON对象转换为字符串,便于打印或在网络上传输。 6. 遍历和操作:...
这是Json-lib库的一部分,Json-lib是一个用于将Java对象转换为JSON表示的库,反之亦然。虽然它的功能和Fastjson相似,但在性能上略逊于Fastjson。使用`JSONObject`的基本操作如下: 1. 创建一个JSONObject并添加...
5. **性能优化**:考虑到性能,json-lib在设计时进行了优化,能够高效地处理大量数据转换,减少内存消耗和提高处理速度。 6. **兼容性**:`json-lib-2.4`版本兼容Java 1.4及更高版本,可以在各种Java平台上运行,...
3. **JSON转对象**:使用`JSONObject.toBean(jsonObject)`或`JSONArray.toList(jsonArray)`将JSON数据转换回Java对象或列表。 4. **处理复杂类型**:对于更复杂的类型如日期、自定义对象等,可能需要注册适配器或...
2. 将JSON字符串转换为Java对象:反之,`JSONObject.toBean(JSONObject json)`可以将JSON对象转化为对应的Java bean。 3. 处理数组和集合:JSON-lib也支持JSON数组(JSONArray)和Java集合之间的转换,这对于处理...
4. **类型转换策略**:`json-lib`在处理不同类型的数据时,如日期、枚举等,会采用特定的转换策略。这些策略可以通过`JsonConfig`配置类进行定制。 5. **XML与JSON的相互转换**:`json-lib`还提供了一个独特功能,...
`json-lib`是一个Java库,用于将Java对象转换为JSON格式,以及将JSON数据转换回Java对象。`json-lib-2.4-jdk15`是该库的一个特定版本,适用于Java 1.5环境。 该压缩包"json-lib-2.4-jdk15及其依赖jar包.rar"包含的...