版本:
fastjson-1.1.28.jar
commons-lang-2.4.jar
概述:
fastjson为一款JSON 解析器和同时支持序列化操作,性能很高。
使用demo:
public class JsonVo { public JsonVo() { super(); } public JsonVo(String id, String name) { super(); this.id = id; this.name = name; } private String id; private String tid; private String name; private Set<String> set; public String getId() { return id; } public Set<String> getSet() { return set; } public void setSet(Set<String> set) { this.set = set; } public String getTid() { return tid; } public void setTid(String tid) { this.tid = tid; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Tmp [id=" + id + ", name=" + name + ", set=" + set + ", tid=" + tid + "]"; } }
使用:
JsonVo tmp = new JsonVo("id1", "name1"); String json = JSON.toJSONString(tmp); System.out.println(json); String jsonStr = "{\"id\":\"id1\",\"name\":\"name1\"}"; JSONObject jsonObject = JSONObject.parseObject(jsonStr); System.out.println("->" + JSONObject.toJavaObject(jsonObject, Map.class)); System.out.println(JSON.toJavaObject(JSON.parseObject(jsonStr), JsonVo.class)); System.out.println(Boolean.valueOf(null)); Map<String, Float> map = new HashMap<String, Float>(); for (int i = 0; i < 100; i++) { String key = RandomStringUtils.random(3, "abcd"); float value = RandomUtils.nextFloat(); map.put(key, value); } System.out.println(map); Map<String, Float> last = JSON.toJavaObject(JSONObject.parseObject(JSON.toJSONString(map)), Map.class); Set<Entry<String, Float>> set = last.entrySet(); Iterator<Entry<String, Float>> entryIterator = last.entrySet().iterator(); while (entryIterator.hasNext()) { Entry<String, Float> entry = entryIterator.next(); System.out.println(entry.getKey()); System.out.println(entry.getValue()); } System.out.println(last); Set<String> hashSet = new HashSet<String>(); for (int i = 0; i < 100; i++) { String key = RandomStringUtils.random(3, "abcd"); hashSet.add(key); } tmp.setSet(hashSet); json = JSON.toJSONString(tmp); System.out.println(json); JsonVo tm = JSON.parseObject(json, JsonVo.class); System.out.println(tm); tm = JSON.parseObject(JSON.toJSONBytes(tm), JsonVo.class); System.out.println("=>" + tm); System.out.println("=>" + JSON.toJSONString(JSON.toJSONBytes(tm)));
对于List<T>处理
List<T> list=JSON.parseArray(String text, T.class)
对于Map<String,T>处理
Map<String, T> userMap = JSON.parseObject(text, new TypeReference<Map<String, T>>() { @Override public Type getType() { return super.getType(); } });