解析 JSON

已编码为字符串的 JSON 可以轻松地解析为标准的 Julia 类型:

julia> using JSON

julia> JSON.parse("""{
           "this": ["is", "json"],
           "numbers": [85, 16, 12.0],
           "and": [true, false, null]
       }""")
Dict{String,Any} with 3 entries:
  "this"    => Any["is","json"]
  "numbers" => Any[85,16,12.0]
  "and"     => Any[true,false,nothing]

JSON.jl 的一些直接属性值得注意:

  • JSON 类型映射到 Julia 中的合理类型:对象变为 Dict,数组变为 Vector,数字变为 Int64Float64,boolean 变为 Bool,null 变为 nothing::Void
  • JSON 是一种无类型的容器格式:因此返回的 Julia 向量的类型为 Vector{Any},返回的字典的类型为 Dict{String, Any}
  • JSON 标准不区分整数和十进制数,但 JSON.jl 可以。没有小数点或科学记数法的数字被解析为 Int64,而带小数点的数字被解析为 Float64。这与许多其他语言中的 JSON 解析器的行为密切相关。