1. 程式人生 > >使用FastJson進行JSON編解碼

使用FastJson進行JSON編解碼

fastjson.jar 是阿里巴巴開發的Java下快速進行JSON編解碼的工具包,方便使用。

1.編碼

把object的內容編碼成為json格式。

1.1 自定義data類編碼成json格式。

如果資料型別是常用的,可以寫成一個類,生成getter setter constructor,然後輕鬆利用JSON.toJSONString 進行編碼。

//class user
class User{
        private String name;
        private int age;

        public User(String name, int
age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public
void setAge(int age) { this.age = age; } }
User u = new User("archmage", 19);
System.out.println(JSON.toJSONString(u));
//程式輸出
{"age":19,"name":"archmage"}

1.2 利用HashMap編碼json格式。
有時候臨時需要構造json格式,但又不是常用的固定data資料時,可以使用HashMap進行編碼,構造一個HashMap<String, Object> 然後呼叫JSON.toJSONString

進行編碼。

HashMap<String, Object> hm = new HashMap<>();
hm.put("name", "archmage");
hm.put("age", 18);
List<String> hobbies = new ArrayList<String>();
hobbies.add("football");
hobbies.add("pingpong");
hobbies.add("basketball");
hm.put("hobby", hobbies);

System.out.println(JSON.toJSONString(hm));
//程式輸出
{
    "name": "archmage",
    "age": 18,
    "hobby": [
        "football",
        "pingpong",
        "basketball"
    ]
}

2.解碼

2.1 解碼到data類

使用JSON.parseObject解碼json字串到data類

String str = "{\"age\":19,\"name\":\"archmage\"}";
User u = JSON.parseObject(str, User.class);
System.out.println(u.toString());
//程式輸出
User{name='archmage', age=19}

2.2 解碼到HashMap

在沒有建立data類的時候,如果需要進行泛型解析,可以將json字串解析到一個Map中,然後根據需要取值。

String str = "{\"age\":19,\"name\":\"archmage\"}";
Map<String, Object> map = JSON.parseObject(str, new TypeReference<Map<String, Object>>() {
});

Set set = map.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
    String key = (String) it.next();
    System.out.println(key + " = " + map.get(key));
}
//程式輸出
name = archmage
age = 19