今天写了一下json数据的反object化,将生成好的json数据,生成object,再去获取它的方法,这里要注意这个方法就像xml解析器一样,如果json数据格式有问题,就会报异常,故要进行异常处理.
import net.sf.json.JSONArray; import net.sf.json.JSONObject; //不使用simple包,使用json-lib-2.2.1.jar包 //import org.json.simple.JSONArray; //import org.json.simple.JSONObject; public class DefaultPicture { public String getPicInfo(){ int id = 0; String content; JSONObject jSObject = new JSONObject(); jSObject.put("url", "http://www.xingushi.com/meinvtuku/UploadPic/2009/2009223202533957.jpg"); jSObject.put("type", "large"); jSObject.put("width", 135); jSObject.put("height", 202); content = jSObject.toString(); // content = content.replace("\"", "\\\"");//为了存放数据库而进行了替换,如果像main方法里使用它,那就不在加这个东西进去,这么报异常 return content; } public static void main(String[] argv){ DefaultPicture defaultPicture = new DefaultPicture(); String aString = defaultPicture.getPicInfo(); JSONObject test = null; try { test = JSONObject.fromObject(aString); } catch (Exception e) { e.printStackTrace(); } System.out.println(test.get("height")); System.out.println(test.get("width")); System.out.println(test.get("type")); System.out.println(test.get("url")); System.out.println(test.get("abc"));//测试一个不存在的key,不存在就写输出null,而不是报异常 } }
如果不是反形成object,就不用使用json-lib-2.2.1.jar包,这个包使用相当麻烦,它依赖很多包,我一个个加,加了5个,加到怕:
commons-lang-2.4.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar
commons-beanutils-1.7.0.jar
直接使用json_simple-1.1-4api.jar就可以简单用.