不會完全沒有,只是JSON直接Parse成Javascript物件的方便性太強。
XML的相關API基本等於DOM-API,甚麼GetElementByXXXXX之類的。
理論上你搞懂怎麼用 DOM 原生的API去操作、讀取HTML,
還有Node樹狀結構、XPath是怎麼回事,
就能搞懂怎麼讀取XML。
然後補充一點,XPath其實跟CSS的Selector是類似的東西。
XML相關的東西,其實跟HTML同質性很高。
無耐前端以剛學會怎麼寫if/else、
會寫幾個function跟callback就出師的菜雞為主。
要搞懂前面說的這些東西,
基本上是出來工作三五年後還有持續進修並且有刻意選修古文學才會知道的事情。
全副精力拿去追最新技術的只會永遠當菜雞,永遠在那邊靠北時代變很快。
>>但是在資訊交換這方面就完全沒有否定的,優勢其實還是有。
最大的優勢就是Attribute跟Property的區分。
像下面的XML
XML:
<OrderList id=xxxxxxxx status=awaiting_review validthrough =000000><Product name=XXX type=XXX/><Product name=YYY type=OOO ><FreeGifts><Product name=UUU qty=1/></FreeGifts></Product></OrderList>轉寫成JSON:
{
OrderInfo :{
id:"xxxxx",
status:"awaiting_review",
validthrough:"000000"
},
ProductList:
[
{
name : "XXX",
type : "YYY"
},
{
name : "YYY",
type : "OOO",
FreeGifts:[
{
name="UUU",
qty=1
}
]
}
]
}
可以看到JSON的層數明顯多出XML好幾層。這其實是JSON的劣勢。
而且JSON還有兩個最大的罩門:1是負數、2是反斜線跳脫。
碰到文字類的欄位,一條反斜線沒跳脫好你的JSON就爆炸了。
會有這種錯覺跟風氣,主要還是XML的相關功能都埋太深。
還有歷史發展緣故所致(可能無腦反微軟的政治正確也是一個因素)。
而且仔細看一些JSON現在的發展:
像是:
Json Schema
https://json-schema.orgJson Path
https://www.baeldung.com/guide-to-jayway-jsonpath這些,你會發現他們其實都是在試圖實作XML裡面已經有的東西。
其實JSON反而是弱勢的一方,只是直接Parse成Javascript物件真的太香。