我有一个xml字符串,我想用JSON字符串转换
var txt = "<?xml version='1.0' encoding='UTF-8' ?>
<result>
<info>
<id>1</id>
<type>HL</type>
<ven>DEMOMA</ven>
</info>
<info>
<id>2</id>
<type>HL</type>
<ven>DEMOMB</ven>
</info>
<result>";
Run Code Online (Sandbox Code Playgroud)
我试图最初使用解析器在DOM对象中转换它,但它会抛出解析错误.
parser = new DOMParser();
xmlDoc = parser.parseFromString(txt,"text/xml");
Run Code Online (Sandbox Code Playgroud)
我希望我的输出json字符串只能使用Javascript
{"result":[{"id":"1","type":"HL","ven":"DEMOMA"},{"id":"2","type":"HL","ven":"DEMOMB"}]}
Run Code Online (Sandbox Code Playgroud)
我将尝试用一个例子来解释使用x2js.js https://github.com/abdmob/x2js和jquery(没有 jQuery)库。
从 API 获取 XML 数据并将此数据转换为 JSON
使用 jQuery
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.3.js"></script>
<script type="text/javascript" src="xml2json.js"></script>
</head>
<body>
<script type="text/javascript">
var x2js = new X2JS();
$.ajax({
url: 'http://ip-api.com/xml',
dataType: 'XML',
success: function(data) {
var xmlText = data; // XML
var jsonObj = x2js.xml2json(xmlText); // Convert XML to JSON
console.log(jsonObj);
}
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
没有 jQuery
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="xml2json.js"></script>
</head>
<body>
<script type="text/javascript">
function loadXMLDoc(dname) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET", dname, false);
xhttp.send();
return xhttp.responseXML;
}
var xmlDoc = loadXMLDoc("http://ip-api.com/xml"); // XML
var x2js = new X2JS();
var jsonObj = x2js.xml2json(xmlDoc); // Convert XML to JSON
console.log(jsonObj);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并使用您提供的示例。修复关闭<result>到</result>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="xml2json.js"></script>
</head>
<body>
<script type="text/javascript">
var txt = "<?xml version='1.0' encoding='UTF-8' ?> <result> <info> <id>1</id> <type>HL</type> <ven>DEMOMA</ven> </info> <info> <id>2</id> <type>HL</type> <ven>DEMOMB</ven> </info> </result>";
var x2js = new X2JS();
var jsonObj = x2js.xml_str2json(txt);
console.log(jsonObj);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
看看这个https://github.com/metatribal/xmlToJSON
这是一个非常小且有用的脚本。使用非常简单。
包含源代码
<script type="text/javascript" src="path/xmlToJSON.js"></script>
享受!xmlToJSON 被封装为一个简单的模块,所以像这样使用它
testString = '<xml><a>It Works!</a></xml>'; // get some xml (string or document/node)
result = xmlToJSON.parseString(testString); // parse
Run Code Online (Sandbox Code Playgroud)
“结果”是您的 JSON 对象。
| 归档时间: |
|
| 查看次数: |
29961 次 |
| 最近记录: |