Parsing json objects

前端 未结 7 699
Happy的楠姐
Happy的楠姐 2020-12-09 20:51

I\'m having trouble understanding how to parse JSON string into c# objects with Visual .NET. The task is very easy, but I\'m still lost... I get this string:



        
相关标签:
7条回答
  • 2020-12-09 21:20

    You need a Class that match with the JSON you are getting and it will return a new object of that class with the values populated.

    0 讨论(0)
  • 2020-12-09 21:22
    dynamic data = JObject.Parse(jsString);
    var value= data["value"];
    
    0 讨论(0)
  • 2020-12-09 21:25

    If you're using .NET 4 - use the dynamic datatype.

    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"]); 
    
    0 讨论(0)
  • 2020-12-09 21:25

    Yes, you need a new class with properties that will match your JSON.

    MyNewClass result = parser.Deserialize<MyNewClass>(source);
    
    0 讨论(0)
  • 2020-12-09 21:25

    The usual way would be create a class (or a set of classes, for more complex JSON strings) that describes the object you want to deserialize and use that as the generic parameter.

    Another option is to deserialize the JSON into a Dictionary<string, object>:

    parser.Deserialize<Dictionary<string, object>>(source);
    

    This way, you can access the data, but I wouldn't suggest you to do this unless you have to.

    0 讨论(0)
  • 2020-12-09 21:31

    Create a new class that your JSON can be deserialized into such as:

    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
        }
    }
    
    0 讨论(0)
提交回复
热议问题