簡體   English   中英

文件格式

[英]Document format

我正在和我的朋友一起玩游戲。 現在有關於關卡的問題。 第一個版本是使用XML構建的。 我不喜歡它有幾個原因:數據太多,我們使用的解析器存在一些問題。 我們正在使用Boost,所以我決定看看json-parser

結構更小,更優化。 您怎么看,從功能強大的xml更改為簡單的json並不是太激進了嗎? json結構能力是否足以組織具有大量額外數據和屬性的大型游戲級別?

我在用python編寫的webapps中經常使用JSON--對於XML和JSON都有很好的解碼器。 確實沒有太大的區別,除了XML占用更多的空間,但更具可讀性。 JSON看起來幾乎就像一個Python字典,所以這是有道理的。 JSON在Web上更普遍的主要原因可能是JSON-RPC相當好,而XML-RPC卻被認為不夠而SOAP太沉重。

所以這取決於你是否能找到一個好的JSON解碼器,這足以滿足你的需求。 我不經常使用Boost / C / C ++。

我認為JSON比XML更適合面向數據的用例(比如你的假設)。 XML作為標記語言很好; 或者當必須混合和匹配多個詞匯表時。 我沒有發現XML對這種用例更強大; 並且沒有理由不能將您想要的任何數據映射到JSON結構。 使用XML,很多功能來自處理工具和XML詞匯表,而不是核心標記語言本身相當簡單。

有可能XML和JSON實際上都適合你,所以也許只看看哪個庫有更好的開發風格庫。

如果您已經在使用將其放入DOM對象的閱讀器,那么除非您最終在此過程中更改數據格式,否則我認為從XML切換到JSON是不值得的。 特別是如果您使用編輯器創建程序數據,因為與JSON相比,您將擁有更好的工具來編輯XML文檔。 這些DOM對象的解析時間很可能在實現之間沒有太大差異,但是如果這是一個問題,那么JSON實例DOM對象可能會占用更少的空間。 您將能夠以XML或JSON格式存儲所需的任何內容,因此不必擔心。 作為一種級別描述語言,我將使用XML,因為我可以定義一個架構,並且如果需要的話,更容易手動編輯。 此外,您可能希望能夠在讀取數據時有效地創建這些級別,並且如果不盡快需要,則忽略所有額外的實例數據。 XML SAX或請求解析器將是理想的選擇。

既然我的簡短回答已經結束,我將在信息上漫步一些,這些信息可能會幫助您更好地自己決定。

您想如何訪問數據? 您是否只想全部閱讀並有一個大對象可以訪問,還是只需要查看一次數據即可基於該信息創建對象? 您是否對解析期間的性能有任何擔憂,以及對讀入的新信息有多快的響應速度? 您的數據格式可能會發生很大變化嗎? 您是否想提供一個標准,可以在您的應用程序之外共享此信息? 我正在使用哪種編程語言? 有些語言有很好的JSON與XML工具,具體取決於語言。

鑒於JSON或XML的唯一選擇,我將根據與應用程序相關的用例來決定。

如果我需要在我的解析器中調整性能並且具有可以描述和共享的非常結構化的格式並且不太可能經常更改,我會使用XML。 我可以使用模式來描述數據結構要求,這將允許其他人輕松地支持我的數據文件。 如果我的信息很大,我也會使用XML,並且我希望有機會以塊的形式解析數據並將它們直接存儲到對象中,這些對象最終會比使用通用DOM模型和解析器更小。 我會使用SAX推讀器或流讀取器,如果我需要在讀入時響應信息,我可以使用它。有許多好的庫可以快速,輕松地為XML做到這一點。 如果我需要經常手動編輯數據或出於調試目的而打印出來,則XML文檔已經采用了這種格式。

如果我需要保存實例文檔空間並且我想要一個DOM類型對象,我會使用JSON。 如果我有兩個應用程序只是嘗試傳遞Python和Java等數據,我會使用JSON,因為它可以使用setter和getter將這些讀取到實例對象中而沒有復雜的framwework,即使這可能會使事情變得緩慢。 如果我僅需要序列化和傳輸數據對象,那么我將選擇JSON,而不是XML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM