logo

줄리아에서 JSON 파일 읽고 쓰는 법 (JSON3.jl) 📂줄리아

줄리아에서 JSON 파일 읽고 쓰는 법 (JSON3.jl)

개요

줄리아에서 json 파일을 다룰 수 있게 도와주는 패키지로는 JSON.jl, JSON3.jl, Serde.jl 등이 있다. 본 문서에서는 JSON3.jl에 대해서 설명한다.

JSON3.jl은 순수 줄리아로 짜여진 패키지로, json 파일을 파싱하고 출력하는 기능을 제공한다. JSON.jl과는 달리 깃허브에서 JuliaIO 그룹에 묶여있지는 않고, 개인 저장소에서 관리되고 있다.

코드

쓰기

딕셔너리를 json 파일로로

아래와 같은 코드로 딕셔너리를 json 파일로 저장할 수 있다.

using JSON3

dict_data = Dict("name"      => "Jang, Wonyoung",
                 "age"       => 20,
                 "group"     => "IVE",
                 "nicknames" => ["Wonnyo", "Gatgi", "Lucky-Vicky"])

# 딕셔너리를 json 파일로 저장
JSON3.write("wonnyo.json", dict_data)
# 혹은
open("wonnyo.json", "w") do io
    JSON3.write(io, dict_data)
end

# 예쁘게 저장
open("pretty_wonnyo.json", "w") do io
    JSON3.pretty(io, dict_data)
end

alt text

문자열을 json 파일로

문자열의 경우에도 딕셔너리랑 거의 같은 방식으로 하면 되는데, JSON3.write 함수에 넣기 전에 JSON3.read로 파싱이 필요하다.

str_data = """
{
    "name": "Jang, Wonyoung",
    "age": 20,
    "group": "IVE",
    "nicknames": ["Wonnyo", "Gatgi", "Lucky-Vicky"]
}
"""

# 문자열을 json 파일로 저장
JSON3.write("wonnyo.json", JSON3.read(str_data))

# 예쁘게 저장
open("pretty_wonnyo.json", "w") do io
    JSON3.pretty(io, str_data)
end

읽기

JSON3.read 함수를 사용하면 json 파일을 딕셔너리 "처럼" 불러올 수 있다. "처럼
“이라고 한 이유는 실제로 딕셔너리가 아니고 JSON3.Object라는 별개의 타입이기 때문이다. Dict 함수를 통해 바로 딕셔너리로 변환할 수 있다. 문자열로 불러오려면 그냥 read 함수를 쓰면 된다.

julia> json_data = JSON3.read("wonnyo.json")
JSON3.Object{Vector{UInt8}, Vector{UInt64}} with 4 entries:
  :name      => "Jang, Wonyoung"
  :age       => 20
  :group     => "IVE"
  :nicknames => ["Wonnyo", "Gatgi", "Lucky-Vicky"]

julia> json_data[:name]
"Jang, Wonyoung"

julia> Dict(json_data)
Dict{Symbol, Any} with 4 entries:
  :group     => "IVE"
  :age       => 20
  :name      => "Jang, Wonyoung"
  :nicknames => ["Wonnyo", "Gatgi", "Lucky-Vicky"]

julia> str_from_json = read("wonnyo.json", String)
"{\"name\":\"Jang, Wonyoung\",\"age\":20,\"group\":\"IVE\",\"nicknames\":[\"Wonnyo\",\"Gatgi\",\"Lucky-Vicky\"]}"

환경

  • OS: Windows11
  • Version: Julia 1.11.3, JSON3 v1.14.2