fastjson

来源:互联网 发布:mac 无法更新10.11.6 编辑:程序博客网 时间:2024/06/07 09:27

依赖

 <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();







0 0
原创粉丝点击