複数のタイプを含むJSONオブジェクトを作成したいと思います。ここ構造です:Rust HashMapを作成するにはどうすればいいですか?値は複数のタイプのうちの1つになりますか?
{
"key1": "value",
"key2": ["val", "val", "val"]
"key3": { "keyX": 12 }
}
は、どのように私はすべてのこれらのタイプを受け入れるHashMap
を作ることができますか?
私はこれをしようとしている:
let item = HashMap::new();
item.insert("key1", someString); //type is &str
item.insert("key2", someVecOfStrings); //type is Vec<String>
item.insert("key3", someOtherHashMap); //Type is HashMap<&str, u32>
let response = json::encode(&item).unwrap();
を私はハッシュマップが十分な型情報を持っていないことを知っているが、私は、私はそれを動作させることが可能かどうかはわかりません。私はitem
に明示的なタイプを設定しようとしましたが、これはHashMap<&str, Encodable>
でしたが、もう一つのエラーです。これを行う正しい方法は何ですか?
私は質問に掲載した例をどのようにするかの例を教えてください。また、列挙型を使用する以外の方法はありませんか?私はちょうど始まったばかりなので、他の言語と比較して、過剰なもののように思えます。 – Majster
[この箱](https://github.com/maciejhirsz/json-rust)では、JSONを簡単に書くこともできます。 – squiguy
例を追加しました。なぜあなたはそれが過度だと思いますか?これは、錆びたenum(タグ付きの共用体)のかなり単純な使い方です。 –