淘先锋技术网

首页 1 2 3 4 5 6 7

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字符串。