依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.7</version>
</dependency>
基本的用法
小数据序列化和反序列化
package demo;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.*;
public class demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
User user1=new User();
user1.setId(1);
user1.setName("tianlei");
User user2=new User();
user2.setId(2);
user2.setName("lilei");
Group group = new Group();
group.setId(3);
group.setName("class");
group.addUser(user1);
group.addUser(user2);
String json= JSON.toJSONString(group);
System.out.println(json);
Group group2=JSON.parseObject(json, Group.class);
List<User> user=new ArrayList<User>();
user=group2.getUsers();
for (int i=0;i<user.size();i++)
System.out.println(user.get(i).getName());
}
}
可以使用map:
package demo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.*;
public class demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map map =new HashMap();
map.put("name", "hello");
map.put("sex", "man");
String json=JSON.toJSONString(map);
System.out.println(json);
Map map2=new HashMap();
map2=(Map) JSON.parse(json);
System.out.println(map.get("name"));
}
}
超大数据序列化
超大JSON对象序列化
JSONWriter writer = new JSONWriter(new FileWriter("/tmp/huge.json"));
writer.startObject();
for (int i = 0; i < 1000 * 1000; ++i) {
writer.writeKey("x" + i);
writer.writeValue(new VO());
}
writer.endObject();
writer.close();
超大数组序列化
SONWriter writer = new JSONWriter(new FileWriter("/tmp/huge.json"));
writer.startArray();
for (int i = 0; i < 1000 * 1000; ++i) {
writer.writeValue(new VO());
}
writer.endArray();
writer.close();
超大数据的反序列化:
超大数组的反序列化:
JSONReader reader = new JSONReader(new FileReader("/tmp/huge.json"));
reader.startArray();
while(reader.hasNext()) {
VO vo = reader.readObject(VO.class);
// handle vo ...
}
reader.endArray();
reader.close();
超大对象的反序列:
JSONReader reader = new JSONReader(new FileReader("/tmp/huge.json"));
reader.startObject();
while(reader.hasNext()) {
String key = reader.readString();
VO vo = reader.readObject(VO.class);
// handle vo ...
}
reader.endObject();
reader.close();