今天写了一下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就可以简单用.