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;
}
java对象和json数据转换实现方式1-使用json-lib实现的更多相关文章
- json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
转:json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 执行:JSONArray arr ...
- string 转 java对象、转map的方式
1.使用fastJson 将String转 map: String out; Object succesResponse = JSON.parse(out); //先转换成Object Map ...
- java对象和json数据转换实现方式3-使用jackson实现
測试代码: package com.yanek.util.json; import java.io.IOException; import java.io.StringWriter; import j ...
- 浅谈Java对象回收的三种方式
半夜睡不着,加上最近在看Java虚拟机,写点给新手和自己看的东西. 第一类:生命周期中止 void scope(){ Test t = new Test(); } 第二类:对象无引用 (一).对象的应 ...
- java对象占用内存大小计算方式
案例一: User public class User { } UserSizeTest public class UserSizeTest { static final Runtime runTim ...
- json、xml和java对象之间的转化
其实从面相对象的角度来理解这个问题,就会很清晰.java中的一切皆对象即把世间万物(Everything in the world)看做java对象,任何处理不了的问题都可以先转化成java对象在做处 ...
- redis 存储java对象 两种方式
根据redis的存储原理,Redis的key和value都支持二进制安全的字符串 1.利用序列化和反序列化的方式存储java对象我们可以通过对象的序列化与反序列化完成存储于取出,这样就可以使用redi ...
- jackson java对象和json对象的互相转换
概述 Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”. Jackson框架包含了3个核心库:streaming,databind,annotation ...
- Spring: 读取 .properties 文件地址,json转java对象,el使用java类方法相关 (十三)
1. 在Java中获取 .properties 文件的路径 (src/main/resources 下) ProjectName |---src/main/java |---src/main/reso ...
随机推荐
- 一键解决 500、502和504 Internal Privoxy Error 问题(图文详解)
最近获得一个SS帐号,手机,其他电脑都能上,但是在我的电脑上就是500 或 502 或 504,如下所示. 502 Read from server failed: Unknown error Th ...
- Error creating bean with name 'testController': Injection of resource dependencies failed;
启动ssm项目报错: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 't ...
- Framework3.5安装(Windows8.1)
在用到Android逆向助手,使用时提示安装Framework3.5,Windows7都有Framework3.5,Windows8却没有,联网更新就算了,这龟速更新得多久.但是问题总还是要解决,随便 ...
- German Collegiate Programming Contest 2015(第三场)
Divisions David is a young boy and he loves numbers. Recently he learned how to divide two numbers.D ...
- Mojo For Chromium Developers1
Mojo For Chromium Developers Overview This document contains the minimum amount of information neede ...
- ubuntu 18.04网卡命名规则改回传统的ethx
自15版本开始网卡命名规则就不叫eth0了.而是用可预期网络接口设备名称的命名规则,比如网卡名为enp3s0 . 如果想要变回ethx也是可以的,参考以下步骤: 1.编辑/etc/default/gr ...
- YOLOv3学习笔记
Darknet/Yolo官网:https://pjreddie.com/darknet/yolo/ GitHub程序:https://github.com/AlexeyAB/darknet 关于程序程 ...
- subline Text3 插件安装
--没有解决,换了vscode 安装Package Control 这是必须的步骤,安装任何插件之前需要安装这个 自动安装的方法最方便,只需要在控制台(不是win的控制台,而是subline 的)里粘 ...
- CSU 1249 竞争性酶抑制剂和同工酶
1249: 竞争性酶抑制剂和同工酶 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 109 Solved: 49 Description 人体内很多化学 ...
- codevs——T1337 银行里的迷宫
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 楚楚每一次都在你的帮助下过了一关又一关(比如他开宴会). ...