java对象和json数据转换实现方式1-使用json-lib实现

测试代码:

package com.yanek.util.json;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONLibUtil {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Hotel h1=new Hotel();
		h1.setId(1);
		h1.setName("name1");

		Hotel h2=new Hotel();
		h2.setId(2);
		h2.setName("name2");

		RoomTypeVO t1=new RoomTypeVO();
		t1.setPrice("20");
		t1.setTypeid(1);
		t1.setTypename("nnn1");

		List<RoomTypeVO> RoomTypeVOs=new ArrayList<RoomTypeVO>();
		RoomTypeVOs.add(t1);
		RoomTypeVOs.add(t1);
		h1.setRoomTypeVOs(RoomTypeVOs);

		Hotel hotel=new Hotel();

		System.out.println("json1:::"+bean2Json(h1));

		String s=bean2Json(h1);
		hotel=json2Bean(s,Hotel.class);

		System.out.println("json2:::"+bean2Json(hotel));

		System.out.println("json3:::"+beanlist2Json(RoomTypeVOs));

		String s2=beanlist2Json(RoomTypeVOs);

		Object[] list=getDTOArray(s2,RoomTypeVO.class);

		for(Object v:list)
		{
			RoomTypeVO rt=(RoomTypeVO)v;
			System.out.println(rt.getTypeid()+"-"+rt.getTypename()+"-"+rt.getPrice());
		}

	}

	public static String bean2Json(Object obj){
        JSONObject jsonObject=JSONObject.fromObject(obj);
        return jsonObject.toString();
    }

	public static String beanlist2Json(Object obj){
		JSONArray jsonObject=JSONArray.fromObject(obj);
        return jsonObject.toString();
    }

    @SuppressWarnings("unchecked")
    public static <T> T json2Bean(String jsonStr,Class<T> objClass){
        return (T)JSONObject.toBean(JSONObject.fromObject(jsonStr), objClass);
    }

    @SuppressWarnings("unchecked")
    public static <T> T jsonarray2Bean(String jsonStr,Class<T> objClass){
        return (T)JSONObject.toBean(JSONObject.fromObject(jsonStr), objClass);
    }

    /**
     * 从一个JSON数组得到一个java对象数组,形如:
     * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]
     * @param object
     * @param clazz
     * @return
     */
     public static Object[] getDTOArray(String jsonString, Class clazz){  

          JSONArray array = JSONArray.fromObject(jsonString);
         Object[] obj = new Object[array.size()];
              for(int i = 0; i < array.size(); i++){
                   JSONObject jsonObject = array.getJSONObject(i);
                  obj[i] = JSONObject.toBean(jsonObject, clazz);
              }
              return obj;
    }

}

输出如下:

json1:::{"id":1,"name":"name1","roomTypeVOs":[{"price":"20","typeid":1,"typename":"nnn1"},{"price":"20","typeid":1,"typename":"nnn1"}]}
json2:::{"id":1,"name":"name1","roomTypeVOs":[{"price":"20","typeid":1,"typename":"nnn1"},{"price":"20","typeid":1,"typename":"nnn1"}]}
json3:::[{"price":"20","typeid":1,"typename":"nnn1"},{"price":"20","typeid":1,"typename":"nnn1"}]
1-nnn1-20
1-nnn1-20

相关java实体类:

package com.yanek.util.json;

public class RoomTypeVO {

	public int getTypeid() {
		return typeid;
	}
	public void setTypeid(int typeid) {
		this.typeid = typeid;
	}

	public String getTypename() {
		return typename;
	}
	public void setTypename(String typename) {
		this.typename = typename;
	}

	public String getPrice() {
		return price;
	}
	public void setPrice(String price) {
		this.price = price;
	}
	private int typeid;
	private String typename;
	private String price;

}

package com.yanek.util.json;

import java.util.List;

public class Hotel {

	public List<RoomTypeVO> getRoomTypeVOs() {
		return RoomTypeVOs;
	}
	public void setRoomTypeVOs(List<RoomTypeVO> roomTypeVOs) {
		RoomTypeVOs = roomTypeVOs;
	}
	private List<RoomTypeVO> RoomTypeVOs;

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	private int id;
	private String name;

}
时间: 2024-09-19 09:03:34

java对象和json数据转换实现方式1-使用json-lib实现的相关文章

java对象序列化与反序列化的默认格式和json格式使用示例_java

默认格式 复制代码 代码如下: public class MyClass implements Serializable{...} 序列化: 复制代码 代码如下: ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(outputPath)); output.writeObject(myObject); 反序列化: 复制代码 代码如下: ObjectInputStream input = new Objec

java对象和json数据转换实现方式2-使用gson实现

测试代码: package com.yanek.util.json; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonParser; public class GsonUtil { /**

java对象和json数据转换实现方式3-使用jackson实现

测试代码: package com.yanek.util.json; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.

json与java对象转换的问题

问题描述 json与java对象转换的问题 请问一下这样的json字符串如何转化为java对象呢? json字符串: "{"post":{"userId":"1","postId":"2"}}" 如果post后面是一个json字符串,那一点问题都没有,但是post后面是一个json对象,这要怎么解析呢?我的javabean是Post.求大神帮忙- 解决方案 Json是标记语言,到任何语言

Ajax 的 Java 对象序列化

ajax|对象 如果您正在使用异步 JavaScript 和 XML(Ajax)进行 Java Web 开发,那么您最关心的问题可能就是把数据从服务器传递给客户机.在面向 Java 开发人员的 Ajax 系列的文章中,Philip McCarthy 介绍了 Java 对象序列化的五种方式,并提供了选择最适合应用程序的数据格式和技术所需要的全部信息.本文将侧重于许多 Java Web 开发人员最关心的问题:为客户机生成数据. 多数 Java 开发人员已经把模型-视图-控制器(MVC)模式应用在他们

Ajax 的 Java 对象序列化(1)

ajax|对象 如果您正在使用异步 JavaScript 和 XML(Ajax)进行 Java Web 开发,那么您最关心的问题可能就是把数据从服务器传递给客户机. 在面向 Java 开发人员的 Ajax 系列的文章中,Philip McCarthy 介绍了 Java 对象序列化的五种方式,并提供了选择最适合应用程序的数据格式和技术所需要的全部信息.本文将侧重于许多 Java Web 开发人员最关心的问题:为客户机生成数据. 多数 Java 开发人员已经把模型-视图-控制器(MVC)模式应用在他

Java中JSON字符串与java对象的互换实例详解_java

在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式, JSON可以有两种格式,一种是对象格式的,另一种是数组对象, {"name":"JSON","address":"北京市西城区","age":25}//JSON的对象格式的字符串 [

使用Jackson来实现Java对象与JSON的相互转换的教程_java

一.入门Jackson中有个ObjectMapper类很是实用,用于Java对象与JSON的互换.1.JAVA对象转JSON[JSON序列化] import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonDemo { pub

使用GSON库转换Java对象为JSON对象的进阶实例详解_java

对List和map等结构的常用转换操作基本上可以满足我们处理的绝大多数需求,但有时项目中对json有特殊的格式规定.比如下面的json串解析: [{"tableName":"students","tableData":[{"id":1,"name":"李坤","birthDay":"Jun 22, 2012 9:54:49 PM"},{"