JSON与JAVA数据的相互转换
来源:互联网 发布:杭州淘宝培训哪家好 编辑:程序博客网 时间:2024/05/06 10:37
import net.sf.json.JSONArray;import net.sf.json.JSONException;import net.sf.json.JSONObject;import net.sf.json.JSONSerializer; /** * json对象转换为java对象 * * @throws JSONException */ @Test public void jsonToJava(){ String json="[{\"addTime\":\"2011-09-19 14:23:02\",\"iccid\":\"1111\",\"id\":0,\"imei\":\"2222\",\"imsi\":\"3333\",\"phoneType\":\"4444\",\"remark\":\"aaaa\",\"tel\":\"5555\"}]"; //接收{}对象,此处接收数组对象会有异常 if(json.indexOf("[")!=-1){ json=json.replace("[", ""); } if(json.indexOf("]")!=-1){ json=json.replace("]", ""); } JSONObject obj=new JSONObject().fromObject(json); SimInfo simInfo=(SimInfo)JSONObject.toBean(obj, SimInfo.class); System.out.println("obj: "+simInfo); System.out.println(simInfo.getAddTime()); System.out.println(simInfo.getIccid()); System.out.println(simInfo.getImei()); System.out.println(simInfo.getImsi()); System.out.println(simInfo.getPhoneType()); System.out.println(simInfo.getRemark()); System.out.println(simInfo.getTel()); System.out.println(simInfo.getId()); DaoFactory.getSimInfoDao().add(simInfo); } /** * 将json转换为java集合对象 */ @Test public void jsonToJavas(){ String jsons="[{\"addTime\":\"2011-09-19 14:23:02\",\"iccid\":\"1111\",\"id\":0,\"imei\":\"2222\",\"imsi\":\"3333\",\"phoneType\":\"4444\",\"remark\":\"aaaa\",\"tel\":\"5555\"}," + "{\"addTime\":\"2011-11-11 14:23:02\",\"iccid\":\"2222\",\"id\":0,\"imei\":\"2222\",\"imsi\":\"3333\",\"phoneType\":\"4444\",\"remark\":\"aaaa\",\"tel\":\"5555\"}]"; List<SimInfo> simInfos = getJavaCollection(new SimInfo(),jsons); System.out.println(simInfos.size()); for(SimInfo simInfo:simInfos){ System.out.println("addTime: "+simInfo.getAddTime()); System.out.println("========="); } } /** * 封装将json对象转换为java集合对象 * * @param <T> * @param clazz * @param jsons * @return */ private <T> List<T> getJavaCollection(T clazz, String jsons) { List<T> objs=null; JSONArray jsonArray=(JSONArray)JSONSerializer.toJSON(jsons); if(jsonArray!=null){ objs=new ArrayList<T>(); List list=(List)JSONSerializer.toJava(jsonArray); for(Object o:list){ JSONObject jsonObject=JSONObject.fromObject(o); T obj=(T)JSONObject.toBean(jsonObject, clazz.getClass()); objs.add(obj); } } return objs; } /** * java对象转换为json对象 * * @throws JSONException */ @Test public void javaToJson(){ SimInfo simInfo=new SimInfo(); simInfo.setAddTime(UtilTool.dateToStr(new Date(), null)); simInfo.setIccid("1111"); simInfo.setImei("2222"); simInfo.setImsi("3333"); simInfo.setPhoneType(4); simInfo.setRemark("aaaa"); simInfo.setTel("5555"); //java对象转换为json对象 String json=new JSONArray().fromObject(simInfo).toString(); //json: [{"addTime":"2011-09-19 14:23:02","iccid":"1111","id":0,"imei":"2222","imsi":"3333","phoneType":"4444","remark":"aaaa","tel":"5555"}] System.out.println("json: "+json); }
jackson-core-asl-1.7.2.jar
jackson-mapper-asl-1.7.2.jar
//将一个Java对象转换成JSON StringWriter writer = new StringWriter(); ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(writer, simInfo); String json=writer.toString();
基于json-lib.jar包Json实例程序1.JSONObject to DynaBeanString json = "{name=\"json\",bool:true,int:1,double:2.2}";JSONObject jsonObject = JSONObject.fromObject(json);//抽象的写法:DynaBean bean = (DynaBean) JSONSerializer.toJava( jsonObject ); Object bean = JSONObject.toBean(jsonObject);//Object bean1 = JSONSerializer.toJava(jsonObject);assertEquals(jsonObject.get("name"), PropertyUtils.getProperty(bean, "name"));assertEquals(jsonObject.get("bool"), PropertyUtils.getProperty(bean, "bool"));assertEquals(jsonObject.get("int"), PropertyUtils.getProperty(bean, "int"));assertEquals(jsonObject.get("double"), PropertyUtils.getProperty(bean, "double"));
2.JSONObject to JavaBeanString json = "{name:\"zhangsan\",age:25,hight:1.72,sex:true}";JSONObject jsonObject = JSONObject.fromObject(json);UserBean bean = (UserBean) JSONObject.toBean(jsonObject, UserBean.class);System.out.println(jsonObject);理论上,这样就可以了,但时,有异常Caused by: java.lang.NoSuchMethodException: com.json.Json$UserBean.<init>()
3.JSONArray to ListString json = "[\"first\",\"second\"]";JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json);List output = (List) JSONSerializer.toJava(jsonArray); 4.JSONArray to arrayString json = "[\"first\",\"second\"]";JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json);JsonConfig jsonConfig = new JsonConfig();jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY);Object[] output = (Object[]) JSONSerializer.toJava(jsonArray, jsonConfig);Object[] expected = new Object[] { "first", "second" };ArrayAssertions.assertEquals(expected, output);
5.JSON 字符串 专为 JavaBean(刘慧斌demo 演示需要的jar包在附件里)String str="[{\"id\":\"328\",\"mestype\":\"inbox\"},{\"id\":\"327\",\"mestype\":\"inbox\"},{\"id\":\"279\",\"mestype\":\"already\"},{\"id\":\"278\",\"mestype\":\"already\"},{\"id\":\"277\",\"mestype\":\"already\"},{\"id\":\"310\",\"mestype\":\"inbox\"},{\"id\":\"308\",\"mestype\":\"inbox\"},{\"id\":\"305\",\"mestype\":\"inbox\"},{\"id\":\"304\",\"mestype\":\"inbox\"},{\"id\":\"303\",\"mestype\":\"inbox\"}]"; JSONArray jsonArray=(JSONArray) JSONSerializer.toJSON(str); List list=(List)JSONSerializer.toJava(jsonArray); for (Object obj: list) { JSONObject jsonObject = JSONObject.fromObject(obj); MessageBean bean = (MessageBean) JSONObject.toBean(jsonObject, MessageBean.class); String id=bean.getId()+""; String type=bean.getMestype(); System.out.println(id+" "+type); } System.out.println(list.size());
0 0
- JSON与JAVA数据的相互转换
- JSON与JAVA数据的相互转换
- JSON与JAVA数据的相互转换
- JSON与JAVA数据的相互转换
- JSON与JAVA数据的相互转换
- JSON数据与Java对象相互转换
- JSON与JAVA数据的相互转换(基本应用)
- JSON与JAVA数据的相互转换(基本应用)
- 10046---JSON与JAVA数据的相互转换
- JSON与java对象的相互转换
- Java对象与Json的相互转换
- 【深入JAVA】java中数据与json数据间的相互转换
- Java与JSON相互转换
- json数据的相互转换
- json数据与实体类之间的相互转换
- 【JSON】json与List的相互转换
- json数据与JAVA数据的转换
- json数据与JAVA数据的转换
- IOS开发之----NSError错误信息
- mac系统如何显示和隐藏文件
- Source Insight的相关问题
- AppStore 开发者账户申请流程
- 写一个跳动的心lua
- JSON与JAVA数据的相互转换
- 基于模糊集理论的一种图像二值化算法
- 基于XMPP实现android客户端与服务器的交互
- 设置Eclipse的提示快捷键
- MyISAM和InnoDB的区别
- 关于在静态html中实现语言切换的思路与实现
- android照相、相册获取图片剪裁报错的解决方法
- Swift与OC,C++混合编程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程