C#怎么解析Json并提取所有内容到字典或List,要具体代码。

{"errorCode":22000,"data":{"xcode":"06b9ed05b37158341d07286be822d843","songList":[{"q... {"errorCode":22000,"data":{"xcode":"06b9ed05b37158341d07286be822d843","songList":[{"queryId":"11277008","songId":11277008,"songName":"\u52c7\u6c14","artistId":"1095","artistName":"\u6881\u9759\u8339","albumId":11276429,"albumName":"\u5979\u0026\u5979 [\u597d\u5973\u771f\u7231\u6b4c]","songPicSmall":"http:\/\/b.hiphotos.baidu.com\/ting\/pic\/item\/18d8bc3eb13533fa50437d0daad3fd1f41345b18.jpg","songPicBig":"http:\/\/a.hiphotos.baidu.com\/ting\/pic\/item\/9d82d158ccbf6c814c0bc5cbbe3eb13533fa40d1.jpg","songPicRadio":"http:\/\/c.hiphotos.baidu.com\/ting\/pic\/item\/2cf5e0fe9925bc31e1a8efbb5cdf8db1cb137018.jpg","lrcLink":"\/data2\/lrc\/11301207\/11301207.lrc","version":"","copyType":3,"time":238,"linkCode":22000,"songLink":"http:\/\/file.qianqian.com\/\/data2\/music\/42016392\/42016392.mp3?xcode=06b9ed05b3715834080e0c237f8c5ca50a27df109cddc66b\u0026src=\u0022http%3A%2F%2Fpan.baidu.com%2Fshare%2Flink%3Fshareid%3D459557%26uk%3D2503337755\u0022","showLink":"http:\/\/pan.baidu.com\/share\/link?shareid=459557\u0026uk=2503337755","format":"mp3","rate":128,"size":3824863,"relateStatus":"0","resourceType":"2"}]}}
====解析后图片:
这是WinForm项目,源中的\u52c7\u6c14等要转换为中文。
展开
 我来答
玩转数据处理
推荐于2017-10-02 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3794

向TA提问 私信TA
展开全部
//需要引用附件dll
TextReader reader = File.OpenText("json.txt");
JsonReader readerJson = new JsonTextReader(reader);
Dictionary<object, object> dict = new Dictionary<object, object>();
object temp = new object();
while (readerJson.Read())
{
    if (readerJson.Value != null)
    {
        switch (readerJson.TokenType)
        {
            case JsonToken.PropertyName:
                dict.Add(readerJson.Value, new object());
                temp = readerJson.Value;
                break;
            default:
                dict[temp] = readerJson.Value;
                break;
        }
        Console.WriteLine(readerJson.TokenType + "\t" + readerJson.Value);
    }
}

效果图:


更多追问追答
追问

谢谢!出现未处理的JsonReaderException,请问怎么解决?

追答
我用你给的那段没问题哈,是不是你的json和上面的不同呢?

http://pan.baidu.com/s/1o6FWBUE
知百事通答
2015-05-13 · 超过10用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:14.9万
展开全部
五月花学校,软件开发培训,十六年办学经验
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友81d58d4
2015-05-04 · TA获得超过388个赞
知道小有建树答主
回答量:247
采纳率:100%
帮助的人:172万
展开全部
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.IO;
using System.Text.RegularExpressions;
using System.Web.Script.Serialization;

namespace PublicUse.Text
{
public class JsonSerz
{
public JsonSerz()
{
}

/// <summary>
/// json序列化(非二进制方式)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static string JsonSerializer<T>(T t)
{
JavaScriptSerializer jsonSerialize = new JavaScriptSerializer();
return jsonSerialize.Serialize(t);

}

/// <summary>
/// json反序列化(非二进制方式)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonString"></param>
/// <returns></returns>
public static T JsonDeserialize<T>(string jsonString)
{
JavaScriptSerializer jsonSerialize = new JavaScriptSerializer();
return (T)jsonSerialize.Deserialize<T>(jsonString);
}

}
}
追问
WinForm项目好像没有using System.Web.Script.Serialization;
而且我提供的源中含有有unicode中文字符,是不是要先转换?
真心求代码,劳烦了。
追答
添加引用System.Web;System.Web.Extensions;
中文的好像也可以用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveljy6638
2015-05-07 · TA获得超过115个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:67.5万
展开全部
告你个办法把,建好这个模型的对象,然后直接用jsonSerialize.Deserialize反解析到类型中就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappmLWLo11g6JeNA
2015-05-07 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:115万
展开全部
Newtonsoft.Json
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式