`
jodron
  • 浏览: 21580 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

json与对象之间的转换--主要是日期格式问题

 
阅读更多
一、总结
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对象及日期格式转换处理 -

    JSON转换为JAVA对象及日期格式转换处理 -

    json-lib-2.4-jdk15和全部依赖jar包

    3. 使用`JSONObject`或`JSONArray`等类来创建JSON对象,或者将Java对象转换为JSON。 4. 如果需要,可以利用`fromObject()`和`toObject()`方法在JSON和Java对象之间进行转换。 5. 对于XML和JSON的互转,可以使用`XML....

    json与对象相互转换系列处理

    在编程中,经常需要将JSON字符串转换为对象,或者将对象转换为JSON字符串。这个过程被称为序列化(将对象转换为JSON)和反序列化(将JSON转换回对象)。在Python中,可以使用内置的`json`模块来完成这些操作;在Java...

    json-lib-2.4-jdk13对应jar包大全

    json-lib是一个Java库,用于将Java对象转换为JSON格式,反之亦然。该库特别适用于处理复杂的Java对象并将其转换为JSON字符串,以便在服务器和客户端之间进行数据交换。 在这个“json-lib-2.4-jdk13对应jar包大全”...

    json-lib-2.4-jdk15.jar和其他关联的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实现json与Java对象的互转

    `json-lib` 是一个 Java 库,它提供了将 JSON 格式的数据转换为 Java 对象,以及将 Java 对象转换为 JSON 格式数据的功能。在 Java 开发中,`json-lib` 是一个常用的 JSON 处理工具,尤其适用于需要处理复杂 JSON ...

    ezmorph-1.0.6.jar和json-lib-2.2.2-jdk15.rar

    例如,当需要将数据库中的数据转换成JSON格式进行网络传输时,可以先用ezmorph将Java对象转换为合适的数据类型,再利用json-lib将这些转换后的数据转化为JSON字符串。 4. **标签解析**: - **ezmorph标签**:表示...

    json-lib-2.2.3-jdk15

    3. **对象转换**:`json-lib`提供了`JSONBean`、`JSONArray.toArray()`、`JSONObject.toBean()`等方法,用于Java对象与JSON对象的相互转换。 4. **JSON操作**:可以使用`JSONObject`和`JSONArray`的成员方法,如`...

    json-lib-2.4-jdk15.jar所需全部JAR包

    `json-lib`是一个Java库,它提供了将Java对象转换为JSON格式以及从JSON数据还原Java对象的功能。`json-lib-2.4-jdk15.jar`是该库的一个特定版本,适用于JDK 1.5环境。 在Java开发中,`jsoup`是一个非常流行的库,...

    json-lib-2.4-jdk15

    1. **序列化对象到JSON**:将Java对象转换为JSON字符串。例如,如果你有一个`Person`类的对象,你可以使用`net.sf.json.JSONObject.fromObject(person)`将其转换为JSON表示。 2. **反序列化JSON到对象**:将JSON...

    json-lib-2.3-jdk15-sources javadoc .jar

    JSON-lib是一个Java库,它提供了将Java对象转换为JSON表示以及从JSON文本反序列化回Java对象的功能。该库的版本是2.3,针对JDK 15进行了优化。"json-lib-2.3-jdk15-sources.jar"文件包含了该库的源代码,这对于...

    json-lib-2.4-jdk15.jar

    1. **JSON到Java对象转换**:`json-lib`允许开发者将JSON字符串解析为Java对象,如Map、List、数组等。这通常通过`JSONArray`和`JSONObject`类实现。 2. **Java对象到JSON转换**:同样,它也可以将Java对象转化为...

    Json与java对象之间相互转换源码

    Gson是Google提供的一个Java库,可以将Java对象转换为JSON字符串,反之亦然。首先,需要在项目中引入Gson库,然后可以使用以下方法进行转换: 将Java对象转换为JSON字符串: ```java Gson gson = new Gson(); ...

    json所需jar包 例如json-lib-2.2-jdk15等

    // 将JSON对象转换为字符串 String jsonString = obj.toString(); // 解析JSON字符串 JSONObject newObj = JSONObject.fromObject(jsonString); ``` 4. **使用API**: `json-lib`提供了丰富的API,可以进行...

    json-lib-2.4和相应的依赖包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。JSON库如json-lib-2.4是Java开发者在处理JSON数据时的重要工具,它提供了一系列API,使得JSON与Java对象之间的...

    处理JSON日期转换

    首先调用`setDataFormat2JAVA()`设置日期格式,然后利用`JSONObject.fromObject(jsonString)`将JSON字符串转换为`JSONObject`,最后通过`JSONObject.toBean(jsonObject, clazz)`将JSON对象转换为指定类型的Java对象...

    json-lib-2.4-jdk及其相关资源与教程

    JSON-Lib是Java平台上处理JSON的一种库,它允许Java开发者将Java对象转换为JSON格式,反之亦然。本资源包围绕“json-lib-2.4-jdk”展开,包含了该版本的JSON-Lib工具包以及相关的jar包,旨在提供全面的支持和教程...

    利用Google Gson实现JSON字符串和对象之间相互转换

    反向操作,将Java对象转换为JSON字符串,同样简单: ```java User user = new User(); user.setName("John"); user.setAge(30); Gson gson = new Gson(); String jsonString = gson.toJson(user); ``` `toJson()`...

    Newtonsoft.Json-for-Unity-master

    1. **序列化与反序列化**:可以将C#对象转换为JSON字符串,也可以将JSON字符串解析成C#对象,支持各种复杂的类结构和自定义类型。 2. **动态JSON**:通过JObject和JArray类,可以动态操作JSON对象,无需预先定义数据...

    json-lib-2.2.3-jdk15.jar 相关jar包

    在JSON-lib中,它主要用于处理各种类型的数据转换,比如将非标准日期格式转换为标准的JSON表示。 2. "commons-logging-1.1.1.jar":这是Apache Commons Logging库的一个版本,它提供了一个API,允许开发人员在不同的...

Global site tag (gtag.js) - Google Analytics