@wpostma -
Very important point: a JSON string is not the same as a JSON object!
var result = bucket.Upsert<object>(key, "{'poo':'bar'}");
//stored as "{'poo':'bar'}"
var result = bucket.Upsert<object>(key, new {poo="bar"});
// stored as { "poo": "bar" }
-Jeff