js转json格式(代码分享js如何实现xml转json)

本文目录
代码分享js如何实现xml转json
本篇文章给大家分享的内容是js实现xml到json的转化,有着一定的参考价值,有需要的朋友可以参考一下
《!DOCTYPE html》
《html》
《head》
《meta charset="UTF-8"》
《title》js瀹__xml杞_son《/title》
《style type="text/css"》
html,body{width:100%;height:100%;margin:0;}
《/style》
《/head》
《body》
***隐藏网址***
《script type="text/javascript"》
// Converts XML to JSON
***隐藏网址***
function XMLtoJSON() {
var me = this; // stores the object instantce
// gets the content of an xml file and returns it in
me.fromFile = function(xml, rstr) {
// Cretes a instantce of XMLHttpRequest object
***隐藏网址***
// sets and sends the request for calling "xml"
***隐藏网址***
***隐藏网址***
// gets the JSON string
***隐藏网址***
// sets and returns the JSON object, if "rstr" undefined (not passed), else, returns JSON string
return (typeof(rstr) == ’undefined’) ? JSON.parse(json_str) : json_str;
}
// returns XML DOM from string with xml content
me.fromStr = function(xml, rstr) {
// for non IE browsers
if(window.DOMParser) {
var getxml = new DOMParser();
var xmlDoc = getxml.parseFromString(xml,"text/xml");
}
else {
// for Internet Explorer
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
}
// gets the JSON string
var json_str = jsontoStr(setJsonObj(xmlDoc));
// sets and returns the JSON object, if "rstr" undefined (not passed), else, returns JSON string
return (typeof(rstr) == ’undefined’) ? JSON.parse(json_str) : json_str;
}
// receives XML DOM object, returns converted JSON object
var setJsonObj = function(xml) {
var js_obj = {};
if (xml.nodeType == 1) {
if (xml.attributes.length 》 0) {
js_obj = {};
for (var j = 0; j 《 xml.attributes.length; j++) {
var attribute = xml.attributes.item(j);
js_obj = attribute.value;
}
}
} else if (xml.nodeType == 3) {
js_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(js_obj) == "undefined") {
js_obj = setJsonObj(item);
} else {
if (typeof(js_obj.push) == "undefined") {
var old = js_obj;
js_obj;
js_obj.push(old);
}
js_obj.push(setJsonObj(item));
}
}
}
return js_obj;
}
// converts JSON object to string (human readablle).
// Removes ’\t\r\n’, rows with multiples ’""’, multiple empty rows, ’ "",’, and " ",; replace empty with ""
var jsontoStr = function(js_obj) {
var rejsn = JSON.stringify(js_obj, undefined, 2).replace(/(\\t|\\r|\\n)/g, ’’).replace(/"",/g, ’""’);
return (rejsn.indexOf(’"parsererror": {’) == -1) ? rejsn : ’Invalid XML format’;
}
};
// creates object instantce of XMLtoJSON
var xml2json = new XMLtoJSON();
《/script》
《script type="text/javascript"》
***隐藏网址***
《sd title="a" host="coursesweb.net"》
《title》CoursesWeb: php, mysql, html, css, javascript, ajax, jquery, actionscript, flash《/title》
《linksin num="1102"/》
《speed pct="51"》4578《/speed》
《/sd》
《sd》
《popularity》5777《/popularity》
《reach rank="5952"/》
***隐藏网址***
《/sd》
《/alexa》`;
// gets JSON object from a string with xml content
var objson = xml2json.fromStr(xmlstr);
console.log(objson);
// gets JSON string from a string with xml content
var strjson = xml2json.fromStr(xmlstr, ’string’);
console.log(strjson);
《/script》
《/body》
《/html》
js字符串转换为json格式的问题
错误原因:
前面你能成功取让袭值是因为a是一个javascript对象而不是纯粹的字符串,所以可以用obj.attr的方式读取数值,
后面你用ajax获取的相似格式字符串的实际为JSON格式的字符串,所以用对象方法读值失败拆滑销。
解决思旅游路:
将JSON文本转换为JavaScript 对象后再用obj.attr的方式读值。
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。
具体方法:
假设用ajax获取的json文本存于变量jsonText中
var a = eval("(" + jsonText + ")");
相关资料:
***隐藏网址***
怎样使js将键值字符串转为json字符串
这次给大家带来怎样使js将键值字符串转为json字符串,js将键值字符串转为json字符串的注意事项有哪些,下面就是实战案例,一起来看一下。
要转化的键值对字符
var respDesc=“cardid=64157001&cardnum=1&sporder_id=PD12160428120635001&sporder_time=20160526101552”;
var newstr = respDesc.replace("=",":\"");
var stringObj= "{" +newstr.replace("&","\",") + "\"}";相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
怎么解决Angular5升级RxJS到5.5.3报错问题
Angular入口组件与声明式组件案例对比
怎样对webpack模块进行热替换

更多文章:
listen to the music(listen to the music 和 listen to music哪个对)
2026年7月1日 14:15
find 命令详解(linux使用find命令查找文件中a到c开头的字符)
2025年7月26日 12:30
c语言strcat用法(c语言指针实现字符拼接函数strcat)
2025年10月4日 12:30
preference中文(do you have a preference)
2025年6月21日 05:45
coaster(杯垫英语 coaster与cupmat有区别吗)
2025年8月27日 08:15
javascript期末考试(javascript实现学生考试成绩的录入,找出成绩中最高分求代码)
2026年2月18日 09:30
idea后面加to(it’s a good idea后面加什么)
2026年5月4日 14:15
kemperor什么意思(king和emperor有什么不同)
2025年10月14日 22:45
美国参议院就针对特朗(美国和日本的地理环境对其经济贸易活动的影响)
2026年3月5日 09:45















