序列化期间需要JSON

时间:2014-03-14 10:43:05

标签: c json

好的,我们知道是否有人说他/她想通过网络发送整数说使用C, 我们通常会说:

  • 照顾字节顺序和
  • 注意不同PC上的尺寸差异

如果有人想发送浮动信息,我们可能会提供额外的建议......

考虑到上述可能存在的问题,有人可能会说:JSON。 我的问题是JSON如何处理/击败上述问题? 只是将这些数据类型转换为字符串?

5 个答案:

答案 0 :(得分:0)

使用JSON时,所有数据都将转换为字符串。由库(或库)处理序列化/反序列化来生成/解释值

答案 1 :(得分:0)

需要将JSON数据转换为字符串。

答案 2 :(得分:0)

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-

这个表单是一个高于endianess的抽象级别,因为这是一个位和字节的问题。这个表单 允许通常的数字类型,如整数和浮点数。

答案 3 :(得分:0)

与手写协议相比,JSON的优点:

JSON是一种标准。 JSON文档是人类可读的。 JSON文档记录了它们的内容。 可以升级JSON文档格式。 JSON文档是结构化的。 JSON文档很灵活。 可以通过JSON模式检查JSON文档。

你需要一些很好的理由来使用专有的二进制格式。

答案 4 :(得分:0)

正如其他人所说,JSON是纯文本协议,因此字节顺序或数据类型大小不会直接影响。

但是,文本可以编码为许多不同的编码,其中一些编码可能会出现字节序问题(如UTF-16)。虽然对于任何新的东西你都应该使用UTF-8,因为它被广泛使用并且没有那些特定的字节序问题。

然而,编码是你必须要了解的。二元/文本之间没有简单的正确选择,只有不同的问题和权衡。