[ 首頁 / 搜尋 / 管理Discord ] [ Komica首頁 ] [ 跨版面 ] [ 雜談 / / 攝影 / 運動 ] [ 人工智慧 / 程設交流 ] [ 蔚藍檔案 / 英雄聯盟 / 米哈遊 / Minecraft / 魔物獵人 / 勝利女神:妮姬 / Pokémon / 刀劍亂舞 / Unlight ]

/cs/ - 程設交流

Computer science
名稱
Email
主題
回覆
檔案
嵌入
Options
密碼 (用來刪除檔案。)
  • Allowed file types:jpg, jpeg, png, gif, mp4, webm
  • Max filesize is 10 MB.
  • Max image dimensions are 10000 x 10000.
  • You may upload 1 per post.

  [Go to bottom]   [Catalog]   [返回]   [Archive]   [Featured]

File: 1699354558885.jpg (5.96 MB, 3027x5415, illust_113213290_20231107_….jpg)

3a3a4ec7 No.36

想請問一下,現代web開發,xml跟json比起來是不是完全沒有優勢啊?

5d083b7f No.37

我遇過XML回傳裡面包json的
簡單的數據用json傳快多了

f9736417 No.38

就我個人使用各類服務經驗來看
大多collector都是吃json
能夠擷取xml的agent冷門到不行
如果你產品是面向大眾且還開放API
那麼就別用xml折磨人了

cbf16457 No.39

也不能說沒有優勢
但是在資訊交換這方面就完全沒有

xml 對於傳統物件導向的相容性挺高的
(倒不如說 就是為了這個開發的
所以多半只用在 local 端
html 還會是 html 也是如此

1660f3dc No.40

File: 1699495257149.jpg (146.06 KB, 763x1087, 1699451263389.jpg)

>>39
html 被視為 xml 的一種類型。 xml作為Web協定是由微軟推廣的。 其他類型包括 xlsx 和 docx(zip 和 xml 的組合)

一些伺服器透過 xml 提供下載資料。 這是一個糟糕的選擇,因為它不能儲存太多資料。 csv 仍然是首選。

xml 仍然存在,因為金融機構仍然使用 xml 衍生性商品 (xbrl)。

還有其他選擇。 有些人尋找新想法想用 yaml 取代 json。 其他一些人更喜歡 toml。

a62f2735 No.41

正好看到有人在講類似的話題
https://twitter.com/ellnore_pad_267/status/1722213921128685612
雖然他是說json對比csv
不過底下也有人提到xml
看起來他的論點是
json的parser很難寫,所以大家都會用library或builtin
延伸意思應該是說不容易發生有人自幹parser結果不相容的問題
而且json的語法單純好寫,表達能力又很強
這幾點加起來應該是json成功的很大原因吧

adf07e46 No.42

>>41
最大原因在於javascipt已成為前端的絕對標準
多數json檔案parse結果是原生的js資料型態
而不是彆扭的XML DOM Object

12eb0f9e No.49

不會完全沒有,只是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.org
Json Path
https://www.baeldung.com/guide-to-jayway-jsonpath

這些,你會發現他們其實都是在試圖實作XML裡面已經有的東西。
其實JSON反而是弱勢的一方,只是直接Parse成Javascript物件真的太香。

12eb0f9e No.50

File: 1699772987340.jpg (80.56 KB, 936x924, 螢幕擷取畫面 2023-11-12 150916.jpg)

補一下圖,看起來這個版面好像需要其他TAG才能貼程式碼。
不過今天只是心血來潮回一下。
晚點有時間再看要怎麼用。

cbf16457 No.51

>> 否定的,優勢其實還是有。
>> 最大的優勢就是Attribute跟Property的區分。

這是xml的優勢沒錯但是這不是資訊交換的優勢
這是資訊表達的優勢
這種結構上,在傳遞大量資訊時會包含大量多餘不必要的字串
光是陣列資料上就大小json就可以小很多



[Go to top] [Catalog] [返回][Post a Reply]
刪除貼文 [ ]
[ 首頁 / 搜尋 / 管理Discord ] [ Komica首頁 ] [ 跨版面 ] [ 雜談 / / 攝影 / 運動 ] [ 人工智慧 / 程設交流 ] [ 蔚藍檔案 / 英雄聯盟 / 米哈遊 / Minecraft / 魔物獵人 / 勝利女神:妮姬 / Pokémon / 刀劍亂舞 / Unlight ]