2

{"foo": 13}では、 に置き換えたいとしましょう{"foo": 14}。試み:

extern crate rustc_serialize;
use rustc_serialize::json::Json;

fn main() {
    let data = Json::from_str("{\"foo\": 13, \"bar\": \"baz\"}").unwrap();
    let mut obj = data.as_object().unwrap();
    let somenum: u64 = 14;
    obj.insert(String::from_str("foo"), Json::U64(somenum));

    for (key, value) in obj.iter() {
        println!("{}: {}", key, match *value {
            Json::U64(v) => format!("{} (u64)", v),
            Json::String(ref v) => format!("{} (string)", v),
            _ => format!("other")
        });
    }
}

エラー:

src/main.rs:8:5: 8:8 error: cannot borrow immutable borrowed content `*obj` \
                            as mutable
src/main.rs:8     obj.insert(String::from_str("foo"), Json::U64(somenum));
                  ^~~
4

1 に答える 1

3

as_object戻り値Option<&Object>— 不変の参照。

可変参照 ( Option<&mut Object>) を取得するには、 を使用する必要がありますas_object_mut

于 2015-07-22T07:27:12.807 に答える