对于想了解PHP将XML转换为JSON的读者,本文将提供新的信息,我们将详细介绍phpxml转json,并且为您提供关于Angular2:将XML转换为JSON、c#–从XML转换为JSON时更改属性
对于想了解PHP将XML转换为JSON的读者,本文将提供新的信息,我们将详细介绍php xml转json,并且为您提供关于Angular2:将XML转换为JSON、c# – 从XML转换为JSON时更改属性值、iOS中的XML转换为JSON、JS中将XML转为JSON对象的有价值信息。
本文目录一览:- PHP将XML转换为JSON(php xml转json)
- Angular2:将XML转换为JSON
- c# – 从XML转换为JSON时更改属性值
- iOS中的XML转换为JSON
- JS中将XML转为JSON对象
PHP将XML转换为JSON(php xml转json)
如何解决PHP将XML转换为JSON?
我想到了。json_encode处理对象的方式与处理字符串的方式不同。我将该对象转换为字符串,现在可以正常工作。
foreach($xml->children() as $state)
{
$states[]= array(''state'' => (string)$state->name);
}
echo json_encode($states);
解决方法
我正在尝试将xml中的xml转换为json。如果我使用简单的xml和json_encode进行简单的转换,则xml中的任何属性都不会显示。
$xml = simplexml_load_file("states.xml");
echo json_encode($xml);
所以我试图像这样手动解析它。
foreach($xml->children() as $state)
{
$states[]= array(''state'' => $state->name);
}
echo json_encode($states);
状态的输出{"state":{"0":"Alabama"}}
不是{"state":"Alabama"}
我究竟做错了什么?
XML:
<?xml version="1.0" ?>
<states>
<state id="AL">
<name>Alabama</name>
</state>
<state id="AK">
<name>Alaska</name>
</state>
</states>
输出:
[{"state":{"0":"Alabama"}},{"state":{"0":"Alaska"}
var dump:
object(SimpleXMLElement)#1 (1) {
["state"]=>
array(2) {
[0]=>
object(SimpleXMLElement)#3 (2) {
["@attributes"]=>
array(1) {
["id"]=>
string(2) "AL"
}
["name"]=>
string(7) "Alabama"
}
[1]=>
object(SimpleXMLElement)#2 (2) {
["@attributes"]=>
array(1) {
["id"]=>
string(2) "AK"
}
["name"]=>
string(6) "Alaska"
}
}
}
Angular2:将XML转换为JSON
xml2js
对我来说,我在角度2应用程序中,但在节点端.
npm install xml2js --save
它就像传递这样的xml一样简单,
var parseString = require('xml2js').parseString; var xml = "<root>Hello xml2js!</root>" parseString(xml,function (err,result) { console.dir(result); });
在我的应用程序中,我有一个xml文件并像这样使用它,
var fs = require('fs'); var parseString = require('xml2js').parseString; function requestCreditReport(callback) { fs.readFile('./credit-api/response.xml','utf8',data) { if (err) return callback(err); parseString(data,callback); }); }
See this jsfiddle
我希望这有帮助.
c# – 从XML转换为JSON时更改属性值
那是因为空值不允许作为一个无法改变的内部政治.
使用xml结果我需要将其转换为JSON并将其序列化为客户端.
为此,我正在使用:
string jSonString = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xmlDoc,Newtonsoft.Json.Formatting.None,true);
好;现在我需要将每个01/01/1900日期转换为DateTime.MinValue(01/01/0001),同时转换为JSON;我怎么处理这个?
解决方法
我会在转换为JSON之前处理XML文档.如果您的日期值是节点或属性值,这是LinqPad示例.由于我不知道你的XML数据结构只是简单的例子:
void Main() { // IF IT IS NODE VALUE var xml = @"<data> <objectA> <dateValueA>01/01/1900</dateValueA> <dateValueB>01/01/1971</dateValueB> </objectA> <objectB> <dateValueA>01/01/2002</dateValueA> <dateValueB>01/01/1900</dateValueB> <dateValueZ>01/01/2011</dateValueZ> </objectB> <objectC> <dateValueA>01/01/1910</dateValueA> <dateValueB>01/01/2012</dateValueB> <dateValueC>01/01/1900</dateValueC> </objectC> </data>"; var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); var nodes = xmlDoc.SelectNodes("//*[text()='01/01/1900']"); foreach(XmlNode node in nodes) { node.InnerText = "01/01/0001"; } string jSonString = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xmlDoc,true); "// IF IT IS NODE VALUE - RESULTS".Dump(); jSonString.Dump(); // IF IT IS ATTRIBUTE VALUE var xmlAttr = @"<data> <objectA dateValueA='01/01/1900' dateValueB='01/01/1900' dateValueC='01/01/2011' /> <objectB dateValueB='01/01/2011' someOtherDate='01/01/1900' /> <objectC dateValueC='01/01/1900' dontChangeThisDate='05/04/1923' /> </data>"; var xmlDocAttr = new XmlDocument(); xmlDoc.LoadXml(xmlAttr); var nodesAttr = xmlDoc.SelectNodes("//*[@*='01/01/1900']"); for(var i=0; i < nodesAttr.Count; i++) { foreach(XmlAttribute attrib in nodesAttr[i].Attributes) { if (attrib.Value == "01/01/1900") { attrib.Value = "01/01/0001"; } } } string jSonStringAttr = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xmlDoc,true); "// IF IT IS ATTRIBUTE VALUE - RESULTS".Dump(); jSonStringAttr.Dump(); }
结果:
// IF IT IS NODE VALUE - RESULTS {"objectA":{"dateValueA":"01/01/0001","dateValueB":"01/01/1971"},"objectB":{"dateValueA":"01/01/2002","dateValueB":"01/01/0001","dateValueZ":"01/01/2011"},"objectC":{"dateValueA":"01/01/1910","dateValueB":"01/01/2012","dateValueC":"01/01/0001"}} // IF IT IS ATTRIBUTE VALUE - RESULTS {"objectA":{"@dateValueA":"01/01/0001","@dateValueB":"01/01/0001","@dateValueC":"01/01/2011"},"objectB":{"@dateValueB":"01/01/2011","@someOtherDate":"01/01/0001"},"objectC":{"@dateValueC":"01/01/0001","@dontChangeThisDate":"05/04/1923"}}
这对你有用吗?
iOS中的XML转换为JSON
我的XML响应:
<commands> <command id="0" name="GetAPPsProducts"> <command_parameters> <command_parameter id="0" name="APPs_Code">ATAiOS</command_parameter> </command_parameters> <command_result> <apps_products> <apps_products id="1"> <apps_code>ATAiOS</apps_code> <apps_product_id>2</apps_product_id> <brand_id>2</brand_id> <brand_desc>Generic</brand_desc> <brand_product_id>2</brand_product_id> <product_id>001-7</product_id> <descrizione>MyTravelApp</descrizione> </apps_products> </apps_products> </command_result> </command>
我正在使用本网站的XMLReader支持文件:
XMLReader
我正在使用此代码将XML转换为JSON
NSError *parseError = nil; NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:testXMLString error:&parseError]; NSLog(@" %@",xmlDictionary);
我收到了JSON响应:
commands = { command = { "command_parameters" = { "command_parameter" = { id = 0; name = "APPs_Code"; text = "\n \n \n \n ATAiOS"; }; text = "\n "; }; "command_result" = { "apps_products" = { "apps_products" = { "apps_code" = { text = "\n \n \n \n ATAiOS"; }; "apps_product_id" = { text = "\n 2"; }; "brand_desc" = { text = "\n Generic"; }; "brand_id" = { text = "\n 2"; }; "brand_product_id" = { text = "\n 2"; }; descrizione = { text = "\n MyTravelApp"; }; id = 1; "product_id" = { text = "\n 001-7"; }; text = "\n "; }; text = "\n "; }; text = "\n "; }; id = 0; name = GetAPPsProducts; text = "\n "; }; text = "\n "; }; text = "\n \n"; };
我需要这样的回应:
{ "commands": { "command": { "-id": "0","-name": "GetAPPsProducts","command_parameters": { "command_parameter": { "-id": "0","-name": "APPs_Code","#text": "ATAiOS" } },"command_result": { "apps_products": { "apps_products": { "-id": "1","apps_code": "ATAiOS","apps_product_id": "2","brand_id": "2","brand_desc": "Generic","brand_product_id": "2","product_id": "001-7","descrizione": "MyTravelApp" }
我在线转换时得到这个回应.如何获得这样的回应
提前致谢.
解决方法
NSError *parseError = nil; NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:testXMLString error:&parseError]; NSLog(@" %@",xmlDictionary);
此代码不会将任何内容转换为JSON.它给你一个NSDictionary.您需要从字典中实际创建JSON数据.尝试这个大小.
NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:xmlDictionary options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string error:&error]; if (! jsonData) { NSLog(@"Got an error: %@",error); } else { Nsstring *jsonString = [[Nsstring alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"%@",jsonString); }
JS中将XML转为JSON对象
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> <script> var $xml = jQuery.noConflict(); </script> <script type="text/javascript" src="http://www.jsons.cn/Down/jquery.json2xml.js"></script> <script type="text/javascript" src="http://www.jsons.cn/Down/jquery.xml2json.js"></script>
//获取xml对象 var loadXML = function () { xmlFile = "../Test.xml"; var xmlDoc; if (window.ActiveXObject) { xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//IE浏览器 xmlDoc.async = false; xmlDoc.load(xmlFile); } else if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) { //火狐浏览器 //else if (document.implementation && document.implementation.createDocument) {//这里主要是对谷歌浏览器进行处理 xmlDoc = document.implementation.createDocument('', '', null); xmlDoc.load(xmlFile); } else { //谷歌浏览器 var xmlhttp = new window.XMLHttpRequest(); xmlhttp.open("GET", xmlFile, false); xmlhttp.send(null); if (xmlhttp.readyState == 4) { xmlDoc = xmlhttp.responseXML.documentElement; } } return xmlDoc; } // 首先对xml对象进行判断 //var checkXMLDocObj = function (xmlFile) { // var xmlDoc = loadXML(xmlFile); // if (xmlDoc == null) { // alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!'); // window.location.href = '../err.html'; // } // return xmlDoc; //} var xml = loadXML(); //转为json对象 var json_obj = $xml.xml2json(xml.outerHTML); alert(json_obj.data.length);
var json={}; var xml_content = $.json2xml(json);//json装XML对象
我们今天的关于PHP将XML转换为JSON和php xml转json的分享已经告一段落,感谢您的关注,如果您想了解更多关于Angular2:将XML转换为JSON、c# – 从XML转换为JSON时更改属性值、iOS中的XML转换为JSON、JS中将XML转为JSON对象的相关信息,请在本站查询。
本文标签: