測试代码:

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; }

最新文章

  1. IE10中session失效取不到值的问题
  2. tomcat8和7关于自定义tag的处理区别
  3. IOS单例模式要做到3点
  4. 【IOS】3. OC 类声明和实现
  5. Realtek 8168 安装 VMware ESXi 提示没有驱动
  6. Java垃圾收集器之--Garbage-First Collector
  7. 《java数据结构与算法》笔记-CH4-8栈结构实现后缀表达式计算结果
  8. 洛谷 [P1118] IOI1994 数字三角形
  9. asp.net core 三 Nuget包管理
  10. java开发----自定义对象,重写equals方法
  11. maven下载及安装最详解
  12. 读书笔记一【哈希——MD5】
  13. C#中的委托(delegate)(个人整理)
  14. XAML绑定到资源文件字符串时失败
  15. Unity与安卓IOS交互
  16. vs下C++内存泄露检测
  17. JS获取节点属性个数及值得方法
  18. 树莓派3B+学习笔记:5、安装vim
  19. 20155215 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
  20. linux 内存计算

热门文章

  1. MyEclipse完好提示配置
  2. sass03 变量、样式导入
  3. Android开发之EditText 详解(addTextChangedListener监听用户输入状态)
  4. Android chromium 1
  5. git diff的文字说明
  6. iOS开发——打包报错error: linker command failed with exit code 1
  7. 紫书 习题 10-1UVa 111040(找规律)
  8. hiho 1068 重新整理的 Sparse-Table(RMQ)模板
  9. 解决Python 插查 MySQL 时中文乱码问题
  10. 洛谷——P3368 【模板】树状数组 2