序列化 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
}