How to get some values from a JSON string in C#?

前端 未结 4 2061
野的像风
野的像风 2020-11-29 22:14

I have a string and I want to get some values from it.

My strings seem like:

string1:

\"{\\r\\n   \\\"id\\\": \\\"100000280905615\\\",
 \\r\\         


        
相关标签:
4条回答
  • 2020-11-29 22:28

    Your strings are JSON formatted, so you will need to parse it into a object. For that you can use JSON.NET.

    Here is an example on how to parse a JSON string into a dynamic object:

    string source = "{\r\n   \"id\": \"100000280905615\", \r\n \"name\": \"Jerard Jones\",  \r\n   \"first_name\": \"Jerard\", \r\n   \"last_name\": \"Jones\", \r\n   \"link\": \"https://www.facebook.com/Jerard.Jones\", \r\n   \"username\": \"Jerard.Jones\", \r\n   \"gender\": \"female\", \r\n   \"locale\": \"en_US\"\r\n}";
    dynamic data = JObject.Parse(source);
    Console.WriteLine(data.id);
    Console.WriteLine(data.first_name);
    Console.WriteLine(data.last_name);
    Console.WriteLine(data.gender);
    Console.WriteLine(data.locale);
    

    Happy coding!

    0 讨论(0)
  • 2020-11-29 22:28

    Following code is working for me.

    Usings:

    using System.IO;
    using System.Net;
    using Newtonsoft.Json.Linq;
    

    Code:

     using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    {
                        using (Stream responseStream = response.GetResponseStream())
                        {
                            using (StreamReader responseReader = new StreamReader(responseStream))
                            {
                                string json = responseReader.ReadToEnd();
                                string data = JObject.Parse(json)["id"].ToString();
                            }
                        }
                    }
    
    //json = {"kind": "ALL", "id": "1221455", "longUrl": "NewURL"}
    
    0 讨论(0)
  • 2020-11-29 22:37

    my string

    var obj = {"Status":0,"Data":{"guid":"","invitationGuid":"","entityGuid":"387E22AD69-4910-430C-AC16-8044EE4A6B24443545DD"},"Extension":null}
    

    Following code to get guid:

    var userObj = JObject.Parse(obj);
    var userGuid = Convert.ToString(userObj["Data"]["guid"]);
    
    0 讨论(0)
  • 2020-11-29 22:46

    Create a class like this:

    public class Data
    {
        public string Id {get; set;}
        public string Name {get; set;}
        public string First_Name {get; set;}
        public string Last_Name {get; set;}
        public string Username {get; set;}
        public string Gender {get; set;}
        public string Locale {get; set;}
    }
    

    (I'm not 100% sure, but if that doesn't work you'll need use [DataContract] and [DataMember] for DataContractJsonSerializer.)

    Then create JSonSerializer:

    private static readonly XmlObjectSerializer Serializer = new DataContractJsonSerializer(typeof(Data));
    

    and deserialize object:

    // convert string to stream
    byte[] byteArray = Encoding.UTF8.GetBytes(contents);
    using(var stream = new MemoryStream(byteArray))
    {
        (Data)Serializer.ReadObject(stream);
    }
    
    0 讨论(0)
提交回复
热议问题