JSON与JAVA数据的相互转换 net.sf.json.JSONArray; net.sf.json.JSONException; net.sf.json.JSONObject; net.sf.json.JSONSerializer; &……
JSON与JAVA数据的相互转换
net.sf.json.JSONArray; net.sf.json.JSONException; net.sf.json.JSONObject; net.sf.json.JSONSerializer; @Test jsonToJava(){ String json="[{"addTime":"2011-09-19 14:23:02","iccid":"1111","id":0,"imei":"2222","imsi":"3333","phoneType":"4444","remark":"aaaa","tel":"5555"}]"; (json.indexOf("[")!=-1){ json=json.replace("[", ""); } (json.indexOf("]")!=-1){ json=json.replace("]", ""); } JSONObject obj= JSONObject().fromObject(json); SimInfo simInfo=(SimInfo)JSONObject.toBean(obj, SimInfo.); 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); } @Test 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( SimInfo(),jsons); System.out.println(simInfos.size()); (SimInfo simInfo:simInfos){ System.out.println("addTime: "+simInfo.getAddTime()); System.out.println("========="); } } <T> List<T> getJavaCollection(T clazz, String jsons) { List<T> objs=; JSONArray jsonArray=(JSONArray)JSONSerializer.toJSON(jsons); (jsonArray!=){ objs= ArrayList<T>(); List list=(List)JSONSerializer.toJava(jsonArray); (Object o:list){ JSONObject jsonObject=JSONObject.fromObject(o); T obj=(T)JSONObject.toBean(jsonObject, clazz.getClass()); objs.add(obj); } } objs; } @Test javaToJson(){ SimInfo simInfo= SimInfo(); simInfo.setAddTime(UtilTool.dateToStr( Date(), )); simInfo.setIccid("1111"); simInfo.setImei("2222"); simInfo.setImsi("3333"); simInfo.setPhoneType(4); simInfo.setRemark("aaaa"); simInfo.setTel("5555"); String json= JSONArray().fromObject(simInfo).toString(); System.out.println("json: "+json); }
StringWriter writer = StringWriter(); ObjectMapper mapper = ObjectMapper(); mapper.writeValue(writer, simInfo); String json=writer.toString();
// 基于json-lib.jar包Json实例程序
String json = "{name="json",bool:true,int:1,double:2.2}";
JSONObject jsonObject = JSONObject.fromObject(json);
Object bean = JSONObject.toBean(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"));
String json = "{name:"zhangsan",age:25,hight:1.72,sex:true}";
JSONObject jsonObject = JSONObject.fromObject(json);
UserBean bean = (UserBean) JSONObject.toBean(jsonObject, UserBean.);
System.out.println(jsonObject);
理论上,这样就可以了,但时,有异常Caused by: java.lang.NoSuchMethodException: com.json.Json$UserBean.<init>()
String json = "["first","second"]";
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json);
List output = (List) JSONSerializer.toJava(jsonArray);
String json = "["first","second"]";
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json);
JsonConfig jsonConfig = JsonConfig();
jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY);
Object[] output = (Object[]) JSONSerializer.toJava(jsonArray, jsonConfig);
Object[] expected = 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);
(Object obj: list) {
JSONObject jsonObject = JSONObject.fromObject(obj);
MessageBean bean = (MessageBean) JSONObject.toBean(jsonObject, MessageBean.);
String id=bean.getId()+"";
String type=bean.getMestype();
System.out.println(id+" "+type);
}
System.out.println(list.size());
还没有评论呢,快来抢沙发~