Julia Language
JSON
수색…
통사론
- JSON 사용
- JSON.parse (str)
- JSON.json (obj)
- JSON.print (io, obj, indent)
비고
Julia Dict
와 JSON 객체는 본질적으로 정렬되어 있지 않으므로 JSON 객체에서 키 - 값 쌍의 순서에 의존하지 않는 것이 가장 좋습니다.
JSON.jl 설치하기
JSON은 널리 사용되는 데이터 교환 형식입니다. Julia에서 가장 많이 사용되는 JSON 라이브러리는 JSON.jl 입니다. 이 패키지를 설치하려면 패키지 관리자를 사용하십시오.
julia> Pkg.add("JSON")
다음 단계는 패키지가 컴퓨터에서 작동하는지 테스트하는 것입니다.
julia> Pkg.test("JSON")
모든 테스트가 통과되면 라이브러리를 사용할 수 있습니다.
JSON 구문 분석
문자열로 인코딩 된 JSON은 표준 줄리아 형식으로 쉽게 파싱 할 수 있습니다.
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
, 숫자는Int64
또는Float64
가되고, 부울은Bool
이되며 null은nothing::Void
됩니다.nothing::Void
. - JSON은 형식화되지 않은 컨테이너 형식입니다. 따라서 반환 된 줄리아 벡터는
Vector{Any}
유형이고 반환 된 사전은Dict{String, Any}
유형입니다. - JSON 표준은 정수와 십진수를 구분하지 않지만 JSON.jl은 구분합니다. 소수점 또는 과학 표기법이없는 숫자는
Int64
로 파싱되지만 소수점이있는 숫자는Float64
로 파싱됩니다. 이것은 다른 많은 언어에서 JSON 파서의 동작과 밀접하게 일치합니다.
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> 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
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow