[英]Deserializing JSON in Windows Phone 7 with Json.NET
我知道有無數的問題。 我讀了很多,但很少理解。 你能幫助澄清WP7中反序列化JSON的過程嗎?
我有JSON看起來像這樣:
{
"status" : {
"code" : 99 ,
"message" : "Already checked in"
},
"response" : {
"token" : "faisdufhdaisuflasdkf",
"distance" : 20,
"angle" : 45
}
}
我正在嘗試使用Json.NET,但這是我的理解幾乎沒有的地方。
var deserializedJSON = JsonConvert.DeserializeObject<Dictionary<string, <TYPE> >>(JsonString);
對於<TYPE>
,如何最好地定義我期望的反序列化對象? 狀態和響應作為單獨的類? 或者只是一個通用的全封裝ServerResponse類?
另外,我怎么知道這個序列化器會將正確的輸出分配給正確的類成員變量? 如果我有
class Status {
string code;
string message;
}
我怎么知道這些將被正確分配?
謝謝。 如果這似乎微不足道,請道歉。 這是我在C#,Silverlight,Windows Phone 7和/或.NET中的第一個項目
{
"status" : {
"code" : 99 ,
"message" : "Already checked in"
},
"response" : {
"token" : "faisdufhdaisuflasdkf",
"distance" : 20,
"angle" : 45
}
}
翻譯成
public class item {
public status status { get; set; }
public response response { get; set; }
}
public class status {
public int code { get; set; }
public string message { get; set; }
}
public class response {
public string token { get; set; }
public int distance { get; set; }
public int angle { get; set; }
}
但在這種情況下,項目是匿名的(仍然有效)
然后像這樣使用它:
var deserializedJSON = JsonConvert.DeserializeObject<item>(JsonString);
你有一個狀態anad響應的包裝器,所以你需要以某種方式表示的包裝類,如果你想采取簡單的路徑。 如果你不想自動反序列化,你可以控制並避免使用包裝器,但我不明白為什么這對你想做的事情來說是一個更好的選擇。 換句話說,我正在確認drachenstern的答案,我也投了贊成票。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.