我有一个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