Json 如何将Julia字典键从字符串转换为整数

Json 如何将Julia字典键从字符串转换为整数,json,dictionary,julia,Json,Dictionary,Julia,我想将字符串的Julia字典键转换为整数 JSON3将字典的键转换为字符串。我的理解是JSON键只是字符串 using JSON3 a1 = Dict(1 => "one", 2 => "two", 3 => "three") a1_json = JSON3.write(a1) "{\"2\":\"two\",\"3\":\"three\",\"1\":\"one\"}" a2 = JSON3.read(json,Dict{Int64,String}) ERR

我想将字符串的Julia字典键转换为整数

JSON3将字典的键转换为字符串。我的理解是JSON键只是字符串

using JSON3

a1 = Dict(1 => "one", 2 => "two", 3  => "three")

a1_json =  JSON3.write(a1)
  "{\"2\":\"two\",\"3\":\"three\",\"1\":\"one\"}"

a2 = JSON3.read(json,Dict{Int64,String})
  ERROR: MethodError: no method matching Int64(::String)
有没有办法将密钥保持为Int?

来自JSON3.jl自述:

声明我的类型是JSON3.ObjectType()意味着它应该映射到一个JSON对象,其中键是SymbolString,值是任何其他类型(或任意类型)

因此,在解析步骤中,如果使用数字作为键,您将获得符号。 话虽如此,您可以使用以下代码恢复原始dict:

Dict(parse(Int,string(k))=>v  for (k,v) in pairs(a2))

有没有办法做到这一点:
a2=JSON3.read(json,Dict{Int64,String})
。在我看来。如果要使用整数作为键,最好使用普通数组(如果键是非顺序的,则使用稀疏数组)。例如,可以使用数组
x=[“一”、“二”、“三”]