


Detaillierte Einführung in die Konvertierung zwischen XML und JSON (Grafik und Text)
JOSN简介
在本系列的第一篇已经简单比较了XML和JSON 时光机
JSON:JavaScript 对象表示法(JavaScript Object Notation)。 JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。
什么是 JSON?
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解
JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
JSON格式化
尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比,返回 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性
XML2JOSN
借助第三方类库转换
使用NuGet添加第三方类库
<code>string xml = @"<?xml version='1.0' standalone='no'?> <root> <person id='1'> <name>Alan</name> <url>http://www.google.com</url> </person> <person id='2'> <name>Louis</name> <url>http://www.yahoo.com</url> </person> </root>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); string jsonText = JsonConvert.SerializeXmlNode(doc); //{ // "?xml": { // "@version": "1.0", // "@standalone": "no" // }, // "root": { // "person": [ // { // "@id": "1", // "name": "Alan", // "url": "http://www.google.com" // }, // { // "@id": "2", // "name": "Louis", // "url": "http://www.yahoo.com" // } // ] // } //}</code>
对于每个表标签的属性对应JSON中的"@"标签名
如果有多个同名标签就会添加到一个数组集合中
其他方式转换
1.使用.NET Framework中的JavaScriptSerializer类
首先需要确保你的工程或服务器支持.NET 4.0或以上版本的Framework,否则无法找到该类。
通过JavaScriptSerializer来实现。它的名字空间为:System.Web.Script.Serialization
如果要使用它,还须添加
System.Web.Extensions库文件引用
<code> var xml = @"<Columns> <Column Name=""key1"" DataType=""Boolean"">True</Column> <Column Name=""key2"" DataType=""String"">Hello World</Column> <Column Name=""key3"" DataType=""Integer"">999</Column> </Columns>"; var dic = XDocument .Parse(xml) .Descendants("Column") .ToDictionary( c => c.Attribute("Name").Value, c => c.Value ); var json = new JavaScriptSerializer().Serialize(dic); Console.WriteLine(json);</code>
2.手动编写转换类
<code> public class Xml2JSON { public static string XmlToJSON(XmlDocument xmlDoc) { StringBuilder sbJSON = new StringBuilder(); sbJSON.Append("{ "); XmlToJSONnode(sbJSON, xmlDoc.DocumentElement, true); sbJSON.Append("}"); return sbJSON.ToString(); } // XmlToJSONnode: Output an XmlElement, possibly as part of a higher array private static void XmlToJSONnode(StringBuilder sbJSON, XmlElement node, bool showNodeName) { if (showNodeName) sbJSON.Append("\"" + SafeJSON(node.Name) + "\": "); sbJSON.Append("{"); // Build a sorted list of key-value pairs // where key is case-sensitive nodeName // value is an ArrayList of string or XmlElement // so that we know whether the nodeName is an array or not. SortedList childNodeNames = new SortedList(); // Add in all node attributes if (node.Attributes != null) foreach (XmlAttribute attr in node.Attributes) StoreChildNode(childNodeNames, attr.Name, attr.InnerText); // Add in all nodes foreach (XmlNode cnode in node.ChildNodes) { if (cnode is XmlText) StoreChildNode(childNodeNames, "value", cnode.InnerText); else if (cnode is XmlElement) StoreChildNode(childNodeNames, cnode.Name, cnode); } // Now output all stored info foreach (string childname in childNodeNames.Keys) { ArrayList alChild = (ArrayList)childNodeNames[childname]; if (alChild.Count == 1) OutputNode(childname, alChild[0], sbJSON, true); else { sbJSON.Append(" \"" + SafeJSON(childname) + "\": [ "); foreach (object Child in alChild) OutputNode(childname, Child, sbJSON, false); sbJSON.Remove(sbJSON.Length - 2, 2); sbJSON.Append(" ], "); } } sbJSON.Remove(sbJSON.Length - 2, 2); sbJSON.Append(" }"); } // StoreChildNode: Store data associated with each nodeName // so that we know whether the nodeName is an array or not. private static void StoreChildNode(SortedList childNodeNames, string nodeName, object nodeValue) { // Pre-process contraction of XmlElement-s if (nodeValue is XmlElement) { // Convert <aa></aa> into "aa":null // <aa>xx</aa> into "aa":"xx" XmlNode cnode = (XmlNode)nodeValue; if (cnode.Attributes.Count == 0) { XmlNodeList children = cnode.ChildNodes; if (children.Count == 0) nodeValue = null; else if (children.Count == 1 && (children[0] is XmlText)) nodeValue = ((XmlText)(children[0])).InnerText; } } // Add nodeValue to ArrayList associated with each nodeName // If nodeName doesn't exist then add it object oValuesAL = childNodeNames[nodeName]; ArrayList ValuesAL; if (oValuesAL == null) { ValuesAL = new ArrayList(); childNodeNames[nodeName] = ValuesAL; } else ValuesAL = (ArrayList)oValuesAL; ValuesAL.Add(nodeValue); } private static void OutputNode(string childname, object alChild, StringBuilder sbJSON, bool showNodeName) { if (alChild == null) { if (showNodeName) sbJSON.Append("\"" + SafeJSON(childname) + "\": "); sbJSON.Append("null"); } else if (alChild is string) { if (showNodeName) sbJSON.Append("\"" + SafeJSON(childname) + "\": "); string sChild = (string)alChild; sChild = sChild.Trim(); sbJSON.Append("\"" + SafeJSON(sChild) + "\""); } else XmlToJSONnode(sbJSON, (XmlElement)alChild, showNodeName); sbJSON.Append(", "); } // Make a string safe for JSON private static string SafeJSON(string sIn) { StringBuilder sbOut = new StringBuilder(sIn.Length); foreach (char ch in sIn) { if (Char.IsControl(ch) || ch == '\'') { int ich = (int)ch; sbOut.Append(@"\u" + ich.ToString("x4")); continue; } else if (ch == '\"' || ch == '\\' || ch == '/') { sbOut.Append('\\'); } sbOut.Append(ch); } return sbOut.ToString(); } }</code>
JOSN2XML
借助第三方类库转换
<code>string json = @"{ '?xml': { '@version': '1.0', '@standalone': 'no' }, 'root': { 'person': [ { '@id': '1', 'name': 'Alan', 'url': 'http://www.google.com' }, { '@id': '2', 'name': 'Louis', 'url': 'http://www.yahoo.com' } ] } }"; XmlDocument doc = JsonConvert.DeserializeXmlNode(json); doc.Save(@"D:\json.xml"); // <?xml version="1.0" standalone="no"?> // <root> // <person id="1"> // <name>Alan</name> // <url>http://www.google.com</url> // </person> // <person id="2"> // <name>Louis</name> // <url>http://www.yahoo.com</url> // </person> // </root></code>
其他方式转换
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Konvertierung zwischen XML und JSON (Grafik und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Die Kernrolle von XML in RSS besteht darin, ein standardisiertes und flexibles Datenformat bereitzustellen. 1. Die Struktur- und Markup -Sprachmerkmale von XML machen es für den Datenaustausch und Speicher für den Daten. 2. RSS verwendet XML, um ein standardisiertes Format zu erstellen, um die Inhaltsfreigabe zu erleichtern. 3. Die Anwendung von XML in RSS enthält Elemente, die Futterinhalte wie Titel und Veröffentlichungsdatum definieren. 4. Vorteile umfassen Standardisierung und Skalierbarkeit sowie Herausforderungen umfassen dokumentausführende und strenge Syntaxanforderungen. 5. Zu den Best Practices gehört die Validierung der XML -Gültigkeit, die einfache Haltung, die Verwendung von CDATA und die regelmäßige Aktualisierung.

RssfeedsarexmldocumentsUTForContentAggregation und Distribution

JSONFEED ist eine JSON-basierte RSS-Alternative, die die Einfachheit und Benutzerfreundlichkeit hat. 1) JSONFEED verwendet das JSON -Format, das leicht zu erzeugen und analysieren zu können. 2) Es unterstützt die dynamische Generation und eignet sich für die moderne Webentwicklung. 3) Die Verwendung von JSONFeed kann die Effizienz und die Benutzererfahrung des Inhaltsmanagements verbessern.

Wie baue, validieren und veröffentlichen Sie RSSFeeds? 1. Build: Verwenden Sie Python -Skripte, um RSSFeed einschließlich Titel, Link, Beschreibung und Veröffentlichungsdatum zu generieren. 2. Überprüfung: Verwenden Sie Feedvalidator.org oder Python -Skript, um zu überprüfen, ob RSSFeed die RSS2.0 -Standards entspricht. 3. Veröffentlichen: Laden Sie RSS -Dateien auf den Server hoch oder verwenden Sie Flask, um RSSFeed dynamisch zu generieren und zu veröffentlichen. Durch diese Schritte können Sie Inhalte effektiv verwalten und teilen.

Methoden zur Gewährleistung der Sicherheit von XML/RSSFeeds umfassen: 1. Datenüberprüfung, 2. Verschlüsselter Transmission, 3. Zugriffskontrolle, 4. Protokolle und Überwachung. Diese Maßnahmen schützen die Integrität und Vertraulichkeit von Daten durch Netzwerksicherheitsprotokolle, Datenverschlüsselungsalgorithmen und Zugriffskontrollmechanismen.

XML ist eine Markup-Sprache, die zum Speichern und Übertragen von Daten verwendet wird, und RSS ist ein XML-basiertes Format, das zur Veröffentlichung häufig aktualisierter Inhalte verwendet wird. 1) XML beschreibt Datenstrukturen durch Tags und Attribute, 2) RSS definiert spezifische Tag -Veröffentlichungen und abonnierte Inhalte, 3) XML kann erstellt und unter Verwendung von Pythons xml.etree.elementtree -Modul, 4) XML -Knoten für Xpath Expressions, 5). Validiert werden durch Xmllint, 7) Verarbeitung großer XML -Dateien mit SAX -Parser kann die Leistung optimieren.

XML ist eine Markup-Sprache für die Datenspeicherung und -austausch, und RSS ist ein XML-basiertes Format für die Veröffentlichung aktualisierter Inhalte. 1. XML definiert Datenstrukturen, die für den Datenaustausch und Speicher geeignet sind. 2.RSS wird für das Inhaltsabonnement verwendet und verwendet spezielle Bibliotheken bei der Parsen. 3. Wenn Sie XML analysieren, können Sie DOM oder SAX verwenden. Beim Generieren von XML und RSS müssen Elemente und Attribute korrekt festgelegt werden.

Verwenden Sie Python, um von XML/RSS in JSON zu konvertieren. 1) Quelldaten analysieren, 2) Felder extrahieren, 3) in JSON konvertieren, 4) Ausgabe von JSON. Verwenden Sie die Bibliotheken xml.etree.elementtree und FeedParser, um XML/RSS zu analysieren, und verwenden Sie die JSON -Bibliothek, um JSON -Daten zu generieren.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.