`
雨打蕉叶
  • 浏览: 236630 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Json转换为Java对象

阅读更多

package com.chinatech.common.utils;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;




/**
 * the tool class for change json to object
 * @author wanggang
 * Email: 315331371@qq.com
 *
 */
public class Json2Bean {

	private static final boolean DEBUG = true;


	@SuppressWarnings("unchecked")
	public static <T> T getBean(String content, Class<T> beanClass)   {
		if(DEBUG)Logger.i(content);
		T bean = null;
		try {
			JSONObject jsonObject = new JSONObject(content);
			Iterator<String> keys = jsonObject.keys();
			bean = beanClass.newInstance();
			while(keys.hasNext()) {
				String key = keys.next();
				if(DEBUG)Logger.i("the field is '"+key+"'");
				Field field;
				try {
					field = beanClass.getDeclaredField(key);
					field.setAccessible(true);  
					field.set(bean, jsonObject.get(key));
				} catch (NoSuchFieldException e) {
					Logger.e("NoSuchFieldException");
					e.printStackTrace();
				} catch (IllegalArgumentException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (JSONException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		} catch (InstantiationException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IllegalAccessException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return bean;
	}

	@SuppressWarnings("rawtypes")
	public static <T> List getList(String content, Class<T> beanClass) {
		List<T> list;
		if(DEBUG)Logger.i(content);
		JSONArray jsonArray=null;
		try {
			jsonArray = new JSONArray(content);
		} catch (JSONException e) {
			Logger.e("The wrong JSON data format");
			return null;
		}
		list=new ArrayList<T>();
		for(int i=0;i<jsonArray.length();i++){
			JSONObject jsonObject = (JSONObject)jsonArray.opt(i);
			if(jsonObject!=null){

				list.add(getBean(jsonObject.toString(),beanClass));
			}
		}
		return list;
	}
	@SuppressWarnings("rawtypes")
	public static <T> LinkedList getLinkedList(String content, Class<T> beanClass) {
		LinkedList<T> list;
		if(DEBUG)Logger.i(content);
		JSONArray jsonArray=null;
		try {
			jsonArray = new JSONArray(content);
		} catch (JSONException e) {
			Logger.e("The wrong JSON data format");
			return null;
		}
		list=new LinkedList<T>();
		for(int i=0;i<jsonArray.length();i++){
			JSONObject jsonObject = (JSONObject)jsonArray.opt(i);
			if(jsonObject!=null){

				list.add(getBean(jsonObject.toString(),beanClass));
			}
		}
		return list;
	}
}
 
分享到:
评论

相关推荐

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

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

    JSON 转化为java对象

    本文详细介绍了 JSON 转化为 Java 对象的方法,包括使用第三方库和自定义转换器的方式。此外,还通过示例代码展示了具体的实现细节。掌握这些技术,不仅能提高开发效率,还能确保数据交换过程中的准确性和安全性。在...

    Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)

    这是本人写的一个基于JSON的完整项目,实现了Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)。这是一个完整的项目,下载解压后直接导入MyEclipse/Eclipse中,运行com.demo.JSONDemo类即可看到效果...

    json格式与java类对象相互转换

    1. 将Java对象转换为JSON字符串,同样使用`ObjectMapper`: ```java User john = new User(1, "John", "john@example.com"); String johnJson = mapper.writeValueAsString(john); ``` 2. 对于集合类型,如List或...

    多层集合嵌套的JSON数据转化为Java对象(src.zip)

    然后,使用`JSONObject.toBean()`方法将JSON转换为Java对象: ```java MainObject mainObject = (MainObject) JSONObject.toBean(jsonObject, MainObject.class); ``` 这会自动将JSON中的数据填充到对应的Java...

    java-对象数组转换为json

    无论是将Java对象数组转换为JSON,还是将JSON转换为Java对象数组,掌握这些转换技巧对于处理Web服务、API请求响应、数据持久化等方面都是非常有帮助的。此外,熟悉各种可用的库及其特性,可以帮助开发者根据项目具体...

    json转对象(java 多级嵌套)

    除了将JSON转换为Java对象,我们还可以使用`ObjectMapper`将Java对象转换回JSON字符串,这对于前端展示或存储数据非常有用: ```java String json = mapper.writeValueAsString(outerObject); ``` 6. **异常...

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

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

    使用json-lib实现json与Java对象的互转

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

    复杂json格式转为对象

    本资源提供了一个关于如何将复杂JSON转换为Java对象的学习实例,包括源码和可执行的jar包。 一、Jackson库的使用 Jackson是Java中广泛使用的JSON库,它的核心类`com.fasterxml.jackson.databind.ObjectMapper`负责...

    java对象转JSON

    1.一款将java对象转成json或是将json转成java对象的jar文件; 2.在网上找了半天才找到,希望大家共享; 3.使用方法,大家在网上随便找,很多,很简单,一看便会; 4.此包在eclipse中和AndroidStudio中都可以用,但是,你如果...

    Json转化为Java对象的实例详解

    本文将深入探讨如何将JSON字符串转化为Java对象,包括基本类型的转化以及包含List对象的情况。 首先,我们需要引入JSON处理的库。这里推荐使用`json-lib`库,可以通过Maven来添加依赖。在你的`pom.xml`文件中加入...

    json转对象数组与对象数组转json --Java

    4. **转换为Java对象**:使用`JSONSerializer.toJava()`方法将`JSONArray`转换为指定类型的Java对象数组。 下面是一个示例代码: ```java import org.json.JSONArray; import net.sf.json.JsonConfig; import ...

    JAVA-JSON工具转换类

    可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`(将JSON字符串解析为Java对象)、`convertToMap()`(将JSON字符串转换为Map)以及`convertToList()`(将JSON字符串转换为List)等。...

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    `fromObject`方法将Java对象转换为`JSONObject`,然后调用`toString()`将其转化为JSON字符串。 ### 进阶使用 - **处理嵌套结构**:`JSONObject`也支持嵌套结构,即JSON对象内包含其他JSON对象或数组。可以通过递归...

    JSON与JAVA对象之间的转换

    - Gson的API简洁明了,适合简单的JSON转换需求。 - Jackson提供了更丰富的功能,如模块化、流处理、数据绑定等,对于大数据处理和复杂场景更为适用。 - 在性能方面,Jackson通常优于Gson,特别是在处理大量数据时。 ...

    java实现http请求以及解析json与java对象转换 项目源代码实例

    这些库提供了将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象的功能。项目源代码可能会包含如何创建JSON对象、解析JSON字符串、映射到Java对象以及处理JSON数组的例子。 具体到这个"java实现http...

    Java bean转换为Json Schema

    Java Bean转换为Json Schema是一种常见的数据转换操作,特别是在开发基于RESTful API的Web服务时,因为JSON Schema提供了数据验证和文档化的功能。Java Bean是Java编程中的一个概念,它是一类具有特定规则的POJO...

    Json数据转换成对象

    json-lib是一个针对多种Java平台的JSON库,它可以将JSON转换为Java对象,反之亦然。在给定的`json-lib-2.2.2-jdk15.jar`中,我们可以使用`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类来解析和创建JSON对象...

Global site tag (gtag.js) - Google Analytics