JSON是一種用于數據交互的輕量級格式。通過使用JSON,我們可以輕松地將數據從一臺計算機傳輸到另一臺計算機。在開發中,我們經常需要將JSON數據轉換為其他格式,或者將其他格式轉換為JSON數據。本文將介紹如何在JavaScript中進行這些轉換。
JSON轉換為JavaScript對象
var jsonStr = '{"name": "張三", "age": 20}'; var jsonObj = JSON.parse(jsonStr);
上述代碼將JSON字符串轉換為JavaScript對象。JSON.parse()方法可以將JSON字符串解析為對應的JavaScript對象。
JavaScript對象轉換為JSON
var jsonObj = {name: "張三", age: 20}; var jsonStr = JSON.stringify(jsonObj);
上述代碼將JavaScript對象轉換為JSON字符串。JSON.stringify()方法可以將JavaScript對象轉換為對應的JSON字符串。
XML轉換為JSON
var xmlStr = '<userInfo><name>張三</name><age>20</age></userInfo>'; var xmlDoc = new DOMParser().parseFromString(xmlStr, "text/xml"); var jsonStr = JSON.stringify(xmlToJson(xmlDoc)); function xmlToJson(xml) { var obj = {}; if (xml.nodeType == 1) { if (xml.attributes.length > 0) { obj["@attributes"] = {}; for (var j = 0; j < xml.attributes.length; j++) { var attribute = xml.attributes.item(j); obj["@attributes"][attribute.nodeName] = attribute.nodeValue; } } } else if (xml.nodeType == 3) { obj = xml.nodeValue; } if (xml.hasChildNodes()) { for(var i = 0; i < xml.childNodes.length; i++) { var item = xml.childNodes.item(i); var nodeName = item.nodeName; if (typeof(obj[nodeName]) == "undefined") { obj[nodeName] = xmlToJson(item); } else { if (typeof(obj[nodeName].push) == "undefined") { var old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(xmlToJson(item)); } } } return obj; }
上述代碼將XML字符串轉換為JSON字符串。該代碼使用了DOMParser()方法將XML字符串解析成XML文檔,然后將XML文檔轉換為JavaScript對象,最后使用JSON.stringify()方法將JavaScript對象轉換為JSON字符串。
JSON轉換為XML
var jsonStr = '{"name": "張三", "age": 20}'; var jsonObj = JSON.parse(jsonStr); var xmlStr = jsonToXml(jsonObj); function jsonToXml(jsonObj) { var xml = '<userInfo> '; for (var key in jsonObj) { if (jsonObj.hasOwnProperty(key)) { var val = jsonObj[key]; if (typeof(val) == "object") { xml += "<" + key + ">" + jsonToXml(val) + "</" + key + ">"; } else { xml += "<" + key + ">" + val + "</" + key + ">"; } } } xml += '</userInfo>'; return xml; }
上述代碼將JSON字符串轉換為XML字符串。該代碼將JSON對象遞歸轉換為XML節點,并拼接成XML字符串。
上一篇json怎樣轉換為map
下一篇css背景色怎么交替