我有以下JSON-String:
jsonString=""{
"struct1": {
"arg1": 218650.27,
"arg2": 90
},
"struct2": {
"arg1": 346.4
}
}"""
我已經知道如何將JSON字串轉換為結構,但不知道像上面的JSON檔案那樣的多個結構。 在這種情況下,是否有任何Pkg可以幫助我,或者我必須分割JSON檔案?
uj5u.com熱心網友回復:
你可以使用JSON3來決議JSON以獲得一個物件的字典:
julia> u = JSON3.read_json_str(jsonString)
JSON3.Object{Base.CodeUnits{UInt8, String}, Vector{UInt64}}。with 2 entries:
:struct1 => {...。
:struct2 => {...
julia> keys(u)
keySet for a JSON3.Object{Base.CodeUnits{UInt8, String}, Vector{UInt64}}. with 2條目。鍵值。
:struct1
:結構2
那么每個元素都可以作為一個單獨的Dict來閱讀(在這里我把它投給Dict,以便閱讀):
julia> Dict(u[:struct2))
Dict{Symbol, Any}。with 1 entry:
:arg1=> 346.4
julia> Dict(u[:struct1] )
Dict{Symbol, Any}。with 2 entries:
:arg1 => 2.1865e5
:arg2 => 90
現在假設你有一個專門的Julia 結構來填充這些值,例如:
Base.@kwdef struct MyStruct
arg1::Float64 = 0.0
arg2::Int =0
end
如果你現在想在這樣的結構中存盤你的JSON,你可以這樣做:
julia> [MyStruct(;u[key]...) for key in keys(u) ]
2-元素 Vector{MyStruct}:
MyStruct(218650.27, 90)
MyStruct(346.4, 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/307850.html
標籤:
