如何用json.Net解析json数据?

Crytoll 2012-12-26 12:10:04
要解析类似以下如此数据:
{"title":1,"userid":1734,"list":[{"s_id":"3"}],"tokenlist":[{"s_id":"3","token":"173899|6.80b926c2778fc1aea416c90e800b8623.2592000.1348992000-261351411","token_secret":"173899|0.ny8z8q4KgpkzST3J5xw4kA5kRr2R230l.261351411","u_id":"261351411"}],"silencetime":{"start_time":"09:00","end_time":"22:00"},"version":10}
获得这些数据的代码如下:

private void GetResponseCallback(IAsyncResult asynchronousResult)
{
try
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
resData = streamRead.ReadToEnd();
statusCode = response.StatusCode;
streamResponse.Close();
streamRead.Close();
ProcessResponseData();
}
catch (Exception ee)
{
errorAsync = ee;
}
}

我在解决空间里面添加了一个名为Json.cs的类,代码如下:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace HHP.json
{
public class Json
{
public string title { get; set; }
public string userid { get; set; }
public string list { get; set; }
public string tokenlist { get; set; }
public string silencetime { get; set; }
public string version { get; set; }
}
class Info
{
public Json json { get; set; }
}

}

想要用json.Net解析json数据并查看解析的结果,接下来该怎么做呢?
...全文
314 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crytoll 2012-12-26
  • 打赏
  • 举报
回复
引用 1 楼 zhujiazhi 的回复:
public class Json { public string title { get; set; } public string userid { get; set; } public string list { get; set; } public string tokenlist ……
亲,那我该肿么匹配呢?求指点
zhujiazhi 2012-12-26
  • 打赏
  • 举报
回复
public class Json { public string title { get; set; } public string userid { get; set; } public string list { get; set; } public string tokenlist { get; set; } public string silencetime { get; set; } public string version { get; set; } } 这个类无法匹配 {"title":1,"userid":1734,"list":[{"s_id":"3"}],"tokenlist":[{"s_id":"3","token":"173899|6.80b926c2778fc1aea416c90e800b8623.2592000.1348992000-261351411","token_secret":"173899|0.ny8z8q4KgpkzST3J5xw4kA5kRr2R230l.261351411","u_id":"261351411"}],"silencetime":{"start_time":"09:00","end_time":"22:00"},"version":10} 给出的json字符串是list 和 tokenlist都是一个数组
Crytoll 2012-12-26
  • 打赏
  • 举报
回复
引用 4 楼 mingky 的回复:
引用 3 楼 zhujiazhi 的回复:最简单的对应关系的 C# code?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778……
咦,为什么要在streamRead.Close();后面进行处理而不是在resData = streamRead.ReadToEnd();后面进行处理呢?
mingky 2012-12-26
  • 打赏
  • 举报
回复
引用 3 楼 zhujiazhi 的回复:
最简单的对应关系的 C# code?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888……
谢谢,获取网站返回值的代码如下:

private void GetResponseCallback(IAsyncResult asynchronousResult)
{
    try
    {
        HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
        HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
        Stream streamResponse = response.GetResponseStream();
        StreamReader streamRead = new StreamReader(streamResponse);
        resData = streamRead.ReadToEnd();
        statusCode = response.StatusCode;
        streamResponse.Close();
        streamRead.Close();
        ProcessResponseData();
    }
    catch (Exception ee)
    {
        errorAsync = ee;
    }
}
返回值在resData里存着,我要在streamRead.Close();加句什么样的代码才能将resData按照JsonData类转换成Json格式的呢?
zhujiazhi 2012-12-26
  • 打赏
  • 举报
回复
最简单的对应关系的

public class JsonData
    {
        public string title
        {
            get;
            set;
        }

        public string userid
        {
            get;
            set;
        }

        public List<Item> list
        {
            get;
            set;
        }

        public List<TokenItem> tokenlist
        {
            get;
            set;
        }

        public SilenceTime silencetime
        {
            get;
            set;
        }

        public int version
        {
            get;
            set;
        }        
    }

    public class Item
    {
        public string s_id
        {
            get;
            set;
        }
    }

    public class TokenItem
    {
        public string s_id
        {
            get;
            set;
        }

        public string token
        {
            get;
            set;
        }

        public string token_secret
        {
            get;
            set;
        }

        public string u_id
        {
            get;
            set;
        }
    }

    public class SilenceTime
    {
        public string start_time
        {
            get;
            set;
        }

        public string end_time
        {
            get;
            set;
        }
    }

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧