I have a requirement to map all of the field values and child collections between ObjectV1 and ObjectV2 by field name. ObjectV2 is in a different namspace to ObjectV1.
If if you control the instantiation of the destination object, try using JavaScriptSerializer. It doesn't spit out any type information.
new JavaScriptSerializer().Serialize(new NamespaceA.Person{Id = 1, Name = "A"})
returns
{Id: 1, Name: "A"}
From this it should possible to deserialize any class with the same property names.