我真的不知道如何詞組這個問題,但是,我有以下的JSON JSON:如何與反序列化對象名稱
{
"person": {
"first_name": "John",
"gender": "M",
"last_name": "Doe"
}
}
而且使用json.net/javascriptserializer(asp.net反序列化)我有以下測試代碼:
public class Person
{
public string first_name { get; set; }
public string last_name { get; set; }
public string gender { get; set; }
}
[Test]
public void TestDeserialize()
{
string json = @"{""person"":{""first_name"":""John"",""gender"":""M"",""last_name"":""Doe""}}";
var serializer = new JavaScriptSerializer(); // asp.net mvc (de)serializer
Person doe = serializer.Deserialize<Person>(json);
Person doe1 = JsonConvert.DeserializeObject<Person>(json); // json.net deserializer
Assert.AreEqual("John", doe.first_name);
Assert.AreEqual("John", doe1.first_name);
}
測試方法失敗,因爲兩者都爲空。我的代碼反序列化有什麼問題?
感謝達林這個作品,它只是吮吸,你需要有一箇中介對象。 – bonskijr 2010-11-19 14:58:20
由於您的JSON定義,您需要此中介對象。就這麼簡單。如果你的JSON沒有「人」部分,那麼你就不需要這個對象。 – 2010-11-19 15:14:52