[英]Need for JSON during serialization
好吧,我們知道是否有人說他/她想使用C通過網絡發送整數,我們通常會說:
如果有人想發送浮動報價,我們可能會提供其他建議。
考慮到以上可能的問題,有人可能會說使用:JSON。 我的問題是JSON如何處理/擊敗上述問題? 通過僅將這些數據類型轉換為字符串?
使用JSON時,所有數據都將轉換為字符串。 由處理串行化/反序列化的庫(或多個庫)來產生/解釋值
需要將JSON
數據轉換為字符串。
JSON僅具有以下類型:
string
number
object
array
true
false
null
整數將是一個number
。
{"int": 1}
您提到的問題超出了JSON的范圍。 必須由創建和讀取JSON的編程語言和庫來處理它們。
編輯:
如http://json.org/所述 ,可以使用以下格式寫一個number
:
number
int
int frac
int exp
int frac exp
int
digit
digit1-9 digits
- digit
- digit1-9 digits
frac
. digits
exp
e digits
digits
digit
digit digits
e
e
e+
e-
E
E+
E-
這種形式是字節序之上的抽象級別,因為這是位和字節的問題。 這種形式的確允許使用普通的數字類型,例如整數和浮點數。
與手寫協議相比,JSON的優勢:
JSON是標准。 JSON文檔易於閱讀。 JSON文檔記錄了它們的內容。 JSON文檔格式可以升級。 JSON文檔是結構化的。 JSON文檔非常靈活。 可以通過JSON模式檢查JSON文檔。
您需要一些很好的理由來使用專有的二進制格式。
正如其他人所說的那樣,JSON是純文本協議,因此字節序或數據類型大小不會直接影響。
但是,文本可以用許多不同的編碼進行編碼,其中一些編碼可能存在字節順序問題(例如UTF-16)。 盡管對於任何新東西,您都應該使用UTF-8,因為它已被廣泛使用並且沒有那些特定的字節序問題。
編碼仍然是您必須了解的事情。 在二進制/文本之間沒有簡單的正確選擇,只有一系列不同的問題和權衡取舍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.