一、总结
1、日期格式不能随意,必须固定才能自动转换,无论使用FastJson还是JSONUtils
2、对无法避免的json传人参数类型或格式错误,乐观思想做异常处理
二、代码
1、FastJson:
com.alibaba.fastjson.JSON.parseObject(menuObjectData,Menu.class);
2、JSONUtils:
/**
* Description: 把json字符串转换为对象
* @param jsonStr
* @param beanClass
* @return
*/
public static Object jsonStrToObject(String jsonStr, Class beanClass){
if(null == jsonStr || "".equals(jsonStr.trim())) {
return null;
}
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
jsonConfig.setRootClass(beanClass);
String[] dateFamates = new String[] {"yyyy-MM-dd HH:mm:ss", //可以任意添加日期格式来与json字符串匹配
"yyyy_MM_dd",
"HH_mm_ss",
"yyyyMMdd",
"yyyyMMddHHmmss",
"yyyy年MM月dd日 HH时mm分ss秒",
"yyyy-MM-dd HH:mm:ss:SSSSSS"};
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFamates));
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFamates));
Object obj=JSONObject.toBean(jsonObject, jsonConfig);
return obj;
}
3、json字符串类型校验
/***
*
* 获取JSON类型
* 判断规则
* 判断第一个字母是否为{或[ 如果都不是则不是一个JSON格式的文本
* @param str
* @return
*/
public static JsonType getJSONType(String jsonStr){
//判断字符串是否为空
//TextUtils.isEmpty(CharSequence str),当括号内参数为(null)或者("")时,返回true。
if(PubUtils.isSEmptyOrNull(jsonStr)){
return JsonType.JSON_TYPE_EMPTY;
}
final char[] strChar = jsonStr.substring(0, 1).toCharArray();
final char firstChar = strChar[0];
if(firstChar == '{'){
return JsonType.JSON_TYPE_OBJECT; //对象类型
}else if(firstChar == '['){
return JsonType.JSON_TYPE_ARRAY; //数组类型
}else{
return JsonType.JSON_TYPE_ERROR; //参数非json字符串
}
}
分享到:
相关推荐
JSON转换为JAVA对象及日期格式转换处理 -
3. 使用`JSONObject`或`JSONArray`等类来创建JSON对象,或者将Java对象转换为JSON。 4. 如果需要,可以利用`fromObject()`和`toObject()`方法在JSON和Java对象之间进行转换。 5. 对于XML和JSON的互转,可以使用`XML....
在编程中,经常需要将JSON字符串转换为对象,或者将对象转换为JSON字符串。这个过程被称为序列化(将对象转换为JSON)和反序列化(将JSON转换回对象)。在Python中,可以使用内置的`json`模块来完成这些操作;在Java...
json-lib是一个Java库,用于将Java对象转换为JSON格式,反之亦然。该库特别适用于处理复杂的Java对象并将其转换为JSON字符串,以便在服务器和客户端之间进行数据交换。 在这个“json-lib-2.4-jdk13对应jar包大全”...
例如,将JSON对象转换为Java POJO(Plain Old Java Object)时,Ezmorph可以帮助简化这个过程。 使用`json-lib-2.4-jdk15.jar`和`ezmorph-1.0.2.jar`,开发者可以实现以下功能: 1. **JSON序列化**:将Java对象...
`json-lib` 是一个 Java 库,它提供了将 JSON 格式的数据转换为 Java 对象,以及将 Java 对象转换为 JSON 格式数据的功能。在 Java 开发中,`json-lib` 是一个常用的 JSON 处理工具,尤其适用于需要处理复杂 JSON ...
例如,当需要将数据库中的数据转换成JSON格式进行网络传输时,可以先用ezmorph将Java对象转换为合适的数据类型,再利用json-lib将这些转换后的数据转化为JSON字符串。 4. **标签解析**: - **ezmorph标签**:表示...
3. **对象转换**:`json-lib`提供了`JSONBean`、`JSONArray.toArray()`、`JSONObject.toBean()`等方法,用于Java对象与JSON对象的相互转换。 4. **JSON操作**:可以使用`JSONObject`和`JSONArray`的成员方法,如`...
`json-lib`是一个Java库,它提供了将Java对象转换为JSON格式以及从JSON数据还原Java对象的功能。`json-lib-2.4-jdk15.jar`是该库的一个特定版本,适用于JDK 1.5环境。 在Java开发中,`jsoup`是一个非常流行的库,...
1. **序列化对象到JSON**:将Java对象转换为JSON字符串。例如,如果你有一个`Person`类的对象,你可以使用`net.sf.json.JSONObject.fromObject(person)`将其转换为JSON表示。 2. **反序列化JSON到对象**:将JSON...
JSON-lib是一个Java库,它提供了将Java对象转换为JSON表示以及从JSON文本反序列化回Java对象的功能。该库的版本是2.3,针对JDK 15进行了优化。"json-lib-2.3-jdk15-sources.jar"文件包含了该库的源代码,这对于...
1. **JSON到Java对象转换**:`json-lib`允许开发者将JSON字符串解析为Java对象,如Map、List、数组等。这通常通过`JSONArray`和`JSONObject`类实现。 2. **Java对象到JSON转换**:同样,它也可以将Java对象转化为...
Gson是Google提供的一个Java库,可以将Java对象转换为JSON字符串,反之亦然。首先,需要在项目中引入Gson库,然后可以使用以下方法进行转换: 将Java对象转换为JSON字符串: ```java Gson gson = new Gson(); ...
// 将JSON对象转换为字符串 String jsonString = obj.toString(); // 解析JSON字符串 JSONObject newObj = JSONObject.fromObject(jsonString); ``` 4. **使用API**: `json-lib`提供了丰富的API,可以进行...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。JSON库如json-lib-2.4是Java开发者在处理JSON数据时的重要工具,它提供了一系列API,使得JSON与Java对象之间的...
首先调用`setDataFormat2JAVA()`设置日期格式,然后利用`JSONObject.fromObject(jsonString)`将JSON字符串转换为`JSONObject`,最后通过`JSONObject.toBean(jsonObject, clazz)`将JSON对象转换为指定类型的Java对象...
JSON-Lib是Java平台上处理JSON的一种库,它允许Java开发者将Java对象转换为JSON格式,反之亦然。本资源包围绕“json-lib-2.4-jdk”展开,包含了该版本的JSON-Lib工具包以及相关的jar包,旨在提供全面的支持和教程...
反向操作,将Java对象转换为JSON字符串,同样简单: ```java User user = new User(); user.setName("John"); user.setAge(30); Gson gson = new Gson(); String jsonString = gson.toJson(user); ``` `toJson()`...
1. **序列化与反序列化**:可以将C#对象转换为JSON字符串,也可以将JSON字符串解析成C#对象,支持各种复杂的类结构和自定义类型。 2. **动态JSON**:通过JObject和JArray类,可以动态操作JSON对象,无需预先定义数据...
在JSON-lib中,它主要用于处理各种类型的数据转换,比如将非标准日期格式转换为标准的JSON表示。 2. "commons-logging-1.1.1.jar":这是Apache Commons Logging库的一个版本,它提供了一个API,允许开发人员在不同的...