首先下载源码:
git clone https://github.com/douglascrockford/JSON-java
这个git居然没有build.xml, 编译很麻烦, 得自己写个build.xml. 我的build.xml为
记得把这个build.xml放入JSON的根目录下,然后运行ant就编译好了. 下面测试下 新建一个目录test, 在test下有目录src, lib, 把刚刚编译的json.jar 复制到这个lib下. 然后写一个测试java文件放入src下,代码为:
import java.util.*;
import java.io.*;
import org.json.*;
class Bean {
private int id;
private String name;
public Bean(){
id = 0;
name = "Mary";
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
StringBuilder s = new StringBuilder();
s.append(id);
s.append(":");
s.append(name);
return s.toString();
}
}
public class Test {
public static void main(String[] args) throws Exception {
String s = new JSONObject().put("JSON", "Hello, World!").toString();
System.out.println(s);
Bean b = new Bean();
b.setId(100);
b.setName("Mary");
System.out.println(new JSONObject(b));
HashMap map = new HashMap();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
JSONObject json = new JSONObject(map);
json.accumulate("c", 4);
System.out.println(json);
json = new JSONObject("{'a':{'a':4}}");
System.out.println(json);
JSONStringer js = new JSONStringer();
System.out.println(js.object().key("name").value("Mary").endObject());
}
}
在test根目录下写一个build.xml, 内容如下:
运行ant就可以看到结果了... json包中两个最常用的就是JSONObject和JSONArray对象,望文生义,不需解释.
另外JSONStringer 和JSONTokener 也是有用的工具,具体实例传送门:http://blog.csdn.net/xiazdong/article/details/7059573
另外有个问题, JSONObject有一个构造方法是可以把一个java bean转化为JSONObject对象,我的bean为:
class Bean {
private int id;
private String name;
public Bean(){
id = 0;
name = "Mary";
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
StringBuilder s = new StringBuilder();
s.append(id);
s.append(":");
s.append(name);
return s.toString();
}
}
new 一个Bean后,传进去,不知为什么返回的是{},即一个空json, 不知道什么原因.