首页 新闻 会员 周边

json.net如何让属性指定序列化json的某一个对象

0
悬赏园豆:40 [已解决问题] 解决于 2016-01-18 11:33

这时我实体类有个 Name  

我怎么样才能直接用下面这个json直接反序列化到 Name  属性上

{"response":{“name”:"213213"}}

 

能直接用[]特性的怎么弄。

lihelin的主页 lihelin | 初学一级 | 园豆:51
提问于:2016-01-16 10:45
< >
分享
最佳答案
0

基类加了一个自定义反序列化方法

lihelin | 初学一级 |园豆:51 | 2016-01-18 11:32
其他回答(3)
0

看看NewtonSoft.Json

 

或者  

 JavaScriptSerializer Serializer = new JavaScriptSerializer();  

List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);

return string.Join(",",objs);  

收获园豆:20
s1ihome | 园豆:222 (菜鸟二级) | 2016-01-16 10:49
0

反序列化成动态对象.想怎么用怎么用.

只能整个字符串反序列化.

收获园豆:20
吴瑞祥 | 园豆:29449 (高人七级) | 2016-01-16 15:38

就是不想反序列化成动态对象。现在api里全都是这种类型的json

我开发的sdk里面要固定的实体类.属性也不能随着api里的变。

我只知道怎么定义他要解析的名称[JsonProperty(PropertyName="rp_session")]

不知道怎么直接自定义解析里层的。

 

支持(0) 反对(0) lihelin | 园豆:51 (初学一级) | 2016-01-16 15:42

@lihelin: 这种东西在性能上没什么好处.还破坏了默认规则.最好json结构怎么样,就定义怎么样的实体.

不然2个东西结构不一样.像上面说的自定义反序列化方法.其实已经把json结构解析出来了.

可以再定义一个实体.然后在2个对象之间转换.也好过从字符串转换到对象的时候修改结构.

减少后面别人修改代码成本

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-01-18 12:03
0
JObject jObject = JObject.Parse("{'response':{'name':'213213'}}");

            JObject name = (JObject)jObject["response"];

            Console.WriteLine(name["name"]);

            Console.ReadKey();

喝前摇一摇 | 园豆:210 (菜鸟二级) | 2016-01-19 12:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册