用C#使用JsonHelper问题,用过的进来回答一下


主要解决的问题是提取一个微信公众号的自定菜单返回的Json数据。。。。。。

JsonHelper中转换对象代码:


 /// 把json格式转换为对象

    public static T Json2Obj<T>(string jsonString)
    {
        using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
        {
            return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
        }
    }

使用List获取数据
List list = JSONHelper.Json2Obj(content);
但是出现了错误:
错误 1 无法将类型“weixinMenu.Menu”隐式转换为“System.Collections.Generic.List<weixinMenu.Menu>”

请问怎么解决,或者帮我解释下这个JsonHelper的具体原理用法。

json c#

樹袋熊的擁抱 11 years, 9 months ago

//获取你要转换的类型类型,再进行转换json这只能转换相同对象
string item = Json2Obj(jsonString);
//按你的报错信息来看的话是和楼上一样,是一个对象并不是一个集合
var list = Json2Obj<weixinMenu.Menu>(jsonString);

luoluo answered 11 years, 9 months ago

先把jsonString打印出来看看是什么结构来决定T的类型


 var list = Json2Obj<weixinMenu.Menu[]>(jsonString);
var item = Json2Obj<weixinMenu.Menu>(jsonString);

解析json最好用 Newtonsoft.Json

火焰喵·燐 answered 11 years, 9 months ago

根据错误1与方法返回值,方法返回的应该是一个Menu对象,而不是一个Menu List

缠绕抚子的蛇 answered 11 years, 9 months ago

Your Answer