Installation: julia> Pkg.add("JSON")
import JSON
# JSON.parse - string or stream to Julia data structures
s = "{\"a_number\" : 5.0, \"an_array\" : [\"string\", 9]}"
j = JSON.parse(s)
# Dict{AbstractString,Any} with 2 entries:
# "an_array" => {"string",9}
# "a_number" => 5.0
# JSON.json - Julia data structures to a string
JSON.json([2,3])
# "[2,3]"
JSON.json(j)
# "{\"an_array\":[\"string\",9],\"a_number\":5.0}"JSON.print(io::IO, s::AbstractString)
JSON.print(io::IO, s::Union{Integer, AbstractFloat})
JSON.print(io::IO, n::Nothing)
JSON.print(io::IO, b::Bool)
JSON.print(io::IO, a::AbstractDict)
JSON.print(io::IO, v::AbstractVector)
JSON.print{T, N}(io::IO, v::Array{T, N})Writes a compact (no extra whitespace or indentation) JSON representation to the supplied IO.
JSON.print(a::AbstractDict, indent)
JSON.print(io::IO, a::AbstractDict, indent)Writes a JSON representation with newlines, and indentation if specified. Non-zero indent will be applied recursively to nested elements.
json(a::Any)Returns a compact JSON representation as an AbstractString.
JSON.parse(s::AbstractString; dicttype=Dict, inttype=Int64)
JSON.parse(io::IO; dicttype=Dict, inttype=Int64)
JSON.parsefile(filename::AbstractString; dicttype=Dict, inttype=Int64, use_mmap=true)Parses a JSON AbstractString or IO stream into a nested Array or Dict.
The dicttype indicates the dictionary type (<: Associative), or a function that
returns an instance of a dictionary type,
that JSON objects are parsed to. It defaults to Dict (the built-in Julia
dictionary), but a different type can be passed for additional functionality.
For example, if you import DataStructures
(assuming the DataStructures
package is
installed)
- you can pass
dicttype=DataStructures.OrderedDictto maintain the insertion order of the items in the object; - or you can pass
()->DefaultDict{String,Any}(Missing)to having any non-found keys returnmissingwhen you index the result.
The inttype argument controls how integers are parsed. If a number in a JSON
file is recognized to be an integer, it is parsed as one; otherwise it is parsed
as a Float64. The inttype defaults to Int64, but, for example, if you know
that your integer numbers are all small and want to save space, you can pass
inttype=Int32. Alternatively, if your JSON input has integers which are too large
for Int64, you can pass inttype=Int128 or inttype=BigInt. inttype can be any
subtype of Real.
JSONText(s::AbstractString)A wrapper around a Julia string representing JSON-formatted text,
which is inserted as-is in the JSON output of JSON.print and JSON.json.
JSON.lower(p::Point2D) = [p.x, p.y]Define a custom serialization rule for a particular data type. Must return a value that can be directly serialized; see help for more details.