序列化 JSON

JSON.json 函式將 Julia 物件序列化為包含 JSON 的 Julia String

julia> using JSON

julia> JSON.json(Dict(:a => :b, :c => [1, 2, 3.0], :d => nothing))
"{\"c\":[1.0,2.0,3.0],\"a\":\"b\",\"d\":null}"

julia> println(ans)
{"c":[1.0,2.0,3.0],"a":"b","d":null}

如果不需要字串,可以將 JSON 直接列印到 IO 流:

julia> JSON.print(STDOUT, [1, 2, true, false, "x"])
[1,2,true,false,"x"]

請注意,STDOUT 是預設值,可以在上面的呼叫中省略。

通過傳遞可選的 indent 引數可以實現更漂亮的列印:

julia> JSON.print(STDOUT, Dict(:a => :b, :c => :d), 4)
{
    "c": "d",
    "a": "b"
}

複雜的 Julia 型別有一個理智的預設序列化:

julia> immutable Point3D
           x::Float64
           y::Float64
           z::Float64
       end

julia> JSON.print(Point3D(1.0, 2.0, 3.0), 4)
{
    "y": 2.0,
    "z": 3.0,
    "x": 1.0
}