我有一個web服務返回json數據。我無法控制服務器端生成的json。反序列化json對象並將內部對象轉換爲字符串值?
我反序列化JSON是這樣的:
JsonConvert.DeserializeObject<OuterObject>(jsonString);
的問題是有嵌入式(有一大堆更多的嵌套內部對象)內的物體。我沒有興趣在我的應用程序中對它們進行建模。
JSON的數據是這樣的:
{
id : "xyz",
name : "Some Object",
properties : {
prop_1 : "foo",
prop_2 : "bar"
},
inner_object : {
id : "abc$1",
name : "Inner Object Name",
....
// a whole lot of stuff here
// with more embedded objects
....
}
}
我想外部對象作爲一個簡單的POCO,其中內-目的通過只是一個(字符串)ID,而不是一個對象引用的模型參考。
public class Outer
{
public String Id { get; internal set; }
public String Name { get; internal set; }
public Dictionary<String,String> Properties { get; internal set; }
// Just keep the InnerObject Id, no real reference to an instance
public String InnerObjectId { get; set; }
}
我想我可以寫一個JsonOuterObject版採用了真正的對象引用JsonInnerObject,並從那裏建造我的真實OuterObject,扔掉以後,別的對象......但是這太瘸。 (我不想看到我的名字接下來在這樣的提交中)
所以我現在玩弄Json.NET的IContractResolver(覆蓋DefaultContractResolver),但它看起來像我在一個很長的時間騎在這裏。
我錯過了一些明顯的Json.NET功能,在這裏照顧這個嗎?
或者,也許一些指針IContractResolver的哪些方法在這裏很有趣?
編輯:在.NET中的POJO是一個aparently。
如果你有任何控制被髮送的對象,你可以刪除那些不需要的屬性... –
好吧,就像我說的:我不:-) – toong