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