首页新闻找找看学习计划

Json序列化成对象 跪求下面实体怎么写

0
悬赏园豆:10 [待解决问题]

不想多废话,上代码,我被卡在这个属性里头pic_infos。。。。

 

 

我补充一点 这里pic_infos属性里面这个值68e16161jw1e63y36zjx7j20cg1kon69pic_ids数组得来

 

 

}

walleyekneel的主页 walleyekneel | 菜鸟二级 | 园豆:304
提问于:2013-06-29 00:53
< >
分享
所有回答(2)
0

嵌套类。

public class Test
{
    public PicDic 68e16161jw....  {get;set;}
}
public class PicDic
{
    public PicDetails thumbnail{get;set;}
    public PicDetails bmiddle{get;set;}
    ... ... 
}
public class PidDetails
{
    public string url{get;set;}
    public int width{get;set;}
    ... ...
}
大概就是这样的层次结构,然后序列化即可。
幻天芒 | 园豆:36522 (高人七级) | 2013-06-29 09:16

我补充一点 这里pic_infos属性里面这个值68e16161jw1e63y36zjx7j20cg1kon69pic_ids得来

支持(0) 反对(0) walleyekneel | 园豆:304 (菜鸟二级) | 2013-06-29 14:01

@walleyekneel: 暂时没想到好的方式,不过如果是我,我会在这个位置,放一个固定属性(确保是唯一的),然后在生成的json字符串中,用replace替换的方式,来达到效果。

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2013-06-29 18:30

@幻天芒: 关键里面那个数组的pic_infos 可能有多个值,也可能无值

支持(0) 反对(0) walleyekneel | 园豆:304 (菜鸟二级) | 2013-06-29 19:15

@walleyekneel: 那你把后面的这一堆都另外生成,然后再插入相应位置吧~这样分多次生成。

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2013-06-29 22:44

@幻天芒: 你这个方法是json转换对象?怎么我觉得objec转换json

支持(0) 反对(0) walleyekneel | 园豆:304 (菜鸟二级) | 2013-06-30 09:03

@walleyekneel: 如果是想转成实体,还真不好搞,推荐几个第三方库,解析,然后实例化对象赋值吧。

ListJson,FastJson,NewtonSoft(Json.Net)

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2013-06-30 17:35
0

使用弱对象dynamic

在解析pic_infos 的时候遍历节点深度,看看对象是不是为0之后遍历就可以了。

````` | 园豆:14268 (专家六级) | 2013-06-30 08:38

小弟资质尚浅,领悟不到大侠意思。。我想知道上面那段能不能转换实体,如果不能,我只能用第三方解析json

支持(0) 反对(0) walleyekneel | 园豆:304 (菜鸟二级) | 2013-06-30 09:06

@walleyekneel: 

  var jobject = JObject.Parse(str);
            var id = jobject.Property("pic_ids").Value.ElementAt(0).Value<string>();
            var count = jobject.Property("pic_infos").Value[id].Count();
            var tmp = jobject.Property("pic_infos").Value[id];

            for (int i = 0; i < count; i++)
            {
                var tmp2 = tmp.ElementAt(i) as Newtonsoft.Json.Linq.JProperty;
                var url = tmp2.Value["url"] as JValue;
                Console.WriteLine(url.Value);
            }

稍微写了下代码 处理了下  想转换实体不会好处理,不过解析还是很easy了。使用的是

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

自己copy倒腾下就行了。

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-06-30 10:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册