在 Web 開發中,後端將資料序列化為 JSON 格式傳遞給前端是極為常見的操作。然而,許多初學者在構建 JSON 字串時,容易混淆 JSON 語法與 Java 物件屬性賦值語法,導致前端解析失敗。
開發者在後端代碼中嘗試手動拼接 JSON 字串時,可能會寫出如下錯誤代碼:
// 錯誤寫法:使用等號 (=) 而非冒號 (:)
String json = "{code=1, msg='success'}";
這樣生成的字串 {code=1, msg='success'} 並不符合 JSON 標準,前端呼叫 JSON.parse() 或 jQuery 的 $.getJSON() 時會拋出語法錯誤。
JSON 格式規範要求鍵值對之間必須使用冒號 (:) 分隔,字串值必須用雙引號 (\") 包裹。正確的 JSON 字串應為:
// 正確寫法
String json = "{\"code\":1, \"msg\":\"success\"}";
強烈建議**不要手動拼接 JSON 字串**。應使用成熟的序列化庫(如 Jackson、Gson、Fastjson)將 Java 物件自動轉換為標準 JSON,避免語法錯誤並處理轉義、泛型、日期格式等複雜情況。
// 以 Jackson 為例
ObjectMapper mapper = new ObjectMapper();
Result result = new Result(1, "success");
String json = mapper.writeValueAsString(result);
// 自動產生標準 JSON:{"code":1,"msg":"success"}
:**,不能是等號 =。掌握這一點,即可避免「為什麼加個屬性就報錯」的困擾,專注於業務邏輯開發。