// 物件
{"firstName":"John","lastName":"Doe"}
// 陣列
{"employees":[
{"firstName":"John","lastName":"Doe"},
{"firstName":"Anna","lastName":"Smith"}
]}
// 直接賦值變數
var employees = [
{"firstName":"Bill","lastName":"Gates"},
{"firstName":"George","lastName":"Bush"}
];
var txt = '{"employees":[...]}';
var obj = eval("(" + txt + ")"); // 必須加括號
alert(obj.employees[0].firstName); // Bill
依賴:commons-lang、commons-beanutils、commons-collections、commons-logging、ezmorph
// List -> JSONArray
JSONArray.fromObject(list);
// Map -> JSONObject
JSONObject.fromObject(map);
// Bean -> JSONObject
JSONObject.fromObject(bean);
// 反序列化
JSONObject.toBean(jsonObject, Bean.class);
JSONArray.toCollection(jsonArray, Bean.class);
完整範例見原文,輸出示例:
[false,false,true,false]
["first","second"]
{"name":"json","bool":true,"int":1,"arr":["a","b"]}
{"name":"kevin","sex":"Male"}
[{"name":"kevin","sex":"Male"},{"name":"maimai","sex":"Femal"}]
特點:速度最快、無依賴、支援 Java Bean/集合/Map/日期/Enum/泛型、Android 相容、Apache 2.0 開源。
核心 API:`com.alibaba.fastjson.JSON`
// 序列化
JSON.toJSONString(object);
JSON.toJSONString(object, true); // 格式化
// 反序列化
JSON.parseObject(text, clazz);
JSON.parseArray(text, clazz);
範例輸出:
{"name":"kevin","sex":"Male"}
[{"name":"maimai","sex":"Female"},{"name":"kevin","sex":"Male"}]
greg
此處略去,專案可按需選型。
JSON 憑藉自描述、輕量、跨平台優勢成為前後端交互首選。JS 原生支援,Java 中 Fastjson 效能最佳,json-lib 功能全面,建議新專案優先 Fastjson。
出處:bianceng.cn