首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JSON 核心語法、Java/JS 互轉實戰與 Ajax 數據類型協商指南

     編輯:Java 綜合教學

JSON 核心語法、Java/JS 互轉實戰與 Ajax 數據類型協商指南

一、基礎規範

  • 媒體類型:application/json
  • 文件擴展名:.json
  • 核心結構:鍵值對、對象({})、數組([])

二、JSON vs XML

三、Java 類型映射

  • JSONObject ↔ java.util.Map
  • JSONArray ↔ java.util.List

可直接使用 Map/List 標準 API 操作。

四、JavaScript 互轉

維度JSONXML
冗余度低,編寫快高,標籤繁瑣
數組支持原生支持無原生數組,需模擬
解析性能快較慢
方向標準 API(推薦)舊式寫法
字符串 → 對象JSON.parse(jsonStr)eval('(' + jsonStr + ')')
對象 → 字符串JSON.stringify(jsonObj)jsonObj.toJSONString()

注意:eval 存在安全風險,嚴禁用於不可信數據。

五、Ajax dataType 協商機制

dataType: "json" 作用:告知 jQuery 預期響應類型,自動調用 JSON.parse 將響應文本轉為 JS 對象/數組。

六、Java 解碼(json-lib)

// 依賴:net.sf.json.JSONObject / JSONArray
String str = request.getParameter("jsonData");

// 對象解析
JSONObject jsonObj = JSONObject.fromObject(str);

// 數組解析
JSONArray jsonArr = JSONArray.fromObject(str);
if (jsonArr.size() > 0) {
    for (int i = 0; i < jsonArr.size(); i++) {
        JSONObject obj = jsonArr.getJSONObject(i);
        // 業務處理...
    }
}

七、三個常見疑問

  1. 不指定 dataType,後台設 Content-Type=application/json → 回調收到字符串(jQuery 不自動解析)
  2. 指定 dataType=json,後台未設 Content-Type → 回調收到對象(jQuery 強制按 dataType 解析)
  3. 建議雙端同時指定:前端 dataType: "json" + 後端 response.setContentType("application/json;charset=UTF-8"),雙重保障
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved