解析json对象

Gre*_*nih 10 .net c# json visual-studio

我无法理解如何使用Visual .NET将JSON字符串解析为c#对象.任务很简单,但我还是输了...我得到这个字符串:

{"single_token":"842269070","username":"example123","version":1.1}
Run Code Online (Sandbox Code Playgroud)

这是我试图消毒的代码:

namespace _SampleProject
{
    public partial class Downloader : Form
    {
        public Downloader(string url, bool showTags = false)
        {
            InitializeComponent();
            WebClient client = new WebClient();
            string jsonURL = "http://localhost/jev";   
            source = client.DownloadString(jsonURL);
            richTextBox1.Text = source;
            JavaScriptSerializer parser = new JavaScriptSerializer();
            parser.Deserialize<???>(source);
        }
Run Code Online (Sandbox Code Playgroud)

我不知道在'<'和'>'之间放什么,从我在网上看到的,我必须为它创建一个新的类......?另外,我如何获得输出?一个例子会有所帮助!

jar*_*ryd 9

创建一个可以将JSON反序列化的新类,例如:

public class UserInfo
{
    public string single_token { get; set; }
    public string username { get; set; }
    public string version { get; set; }
}

public partial class Downloader : Form
{
    public Downloader(string url, bool showTags = false)
    {
        InitializeComponent();
        WebClient client = new WebClient();
        string jsonURL = "http://localhost/jev";
        source = client.DownloadString(jsonURL);
        richTextBox1.Text = source;
        JavaScriptSerializer parser = new JavaScriptSerializer();
        var info = parser.Deserialize<UserInfo>(source);

        // use deserialized info object
    }
}
Run Code Online (Sandbox Code Playgroud)


mar*_*rko 7

如果您使用的是.NET 4 - 请使用动态数据类型.

http://msdn.microsoft.com/en-us/library/dd264736.aspx

string json = "{ single_token:'842269070', username: 'example123', version:1.1}";

     JavaScriptSerializer jss = new JavaScriptSerializer();

     dynamic obj = jss.Deserialize<dynamic>(json);

     Response.Write(obj["single_token"]);
     Response.Write(obj["username"]);
     Response.Write(obj["version"]); 
Run Code Online (Sandbox Code Playgroud)