如何在不使用C#的情况下解析此json结果

时间:2019-10-24 06:21:55

标签: c# json serialization

我该如何解析C#中没有类的json。我不知道该使用数组还是其他任何东西。

这是我要解析的json结果

{
    "success": true,
    "status": 200,
    "message": "SUCCESS",
    "response": {
        "message": "Device Registered",
        "data": [
            {
                "ID": "607dbb9e08b4c22a",
                "Type_ID": "657911C6-AFA5-4AC4-922F-39E56CCB28CC",
                "Name": "Genymotion Google Nexus 5X",
                "Active": "1",
                "Insert_User": "Default",
                "Insert_Date": "2019-10-18 16:33:01.650",
                "Update_User": "Default",
                "Update_Date": "2019-10-18 16:33:01.650"
            }
        ]
    }
}

4 个答案:

答案 0 :(得分:0)

您可以使用 Json.NET https://www.newtonsoft.com/json

文档在这里

https://www.newtonsoft.com/json/help/html/SerializingJSON.htm

简短说明:

对于序列化(对象到字符串):

string text = JsonConvert.SerializeObject(object);

对于反序列化(字符串到对象)

var jsonobject = JsonConvert.DeserializeObject(jsonstring);

如果要反序列化匿名类型,则可以使用此文档,这很简单

https://www.newtonsoft.com/json/help/html/DeserializeAnonymousType.htm

答案 1 :(得分:0)

您可以使用dynamic代替创建对象。但是动态对象比普通类花费更多的资源。如果您有性能方面的问题,我不建议您;如果没有,您可以去:

  string json = @"[
  {
    'Title': 'Json.NET is awesome!',
    'Author': {
      'Name': 'James Newton-King',
      'Twitter': '@JamesNK',
      'Picture': '/jamesnk.png'
    },
    'Date': '2013-01-23T19:30:00',
    'BodyHtml': '<h3>Title!</h3>\r\n<p>Content!</p>'
  }
]";

dynamic blogPosts = JArray.Parse(json);

dynamic blogPost = blogPosts[0];

string title = blogPost.Title;

Console.WriteLine(title);
// Json.NET is awesome!

string author = blogPost.Author.Name;

Console.WriteLine(author);
// James Newton-King

DateTime postDate = blogPost.Date;

Console.WriteLine(postDate);
// 23/01/2013 7:30:00 p.m.

有关更多文档,请查看here

答案 2 :(得分:0)

谢谢大家,我只是弄清楚我自己。 这就是我的工作。


public async Task<string> CheckDevice(string id)
        {
            var uri = new Uri(string.Format(Constant.CheckDevicesRegistration + "id=" + id, string.Empty));

            try
            {
                var response = await client.GetAsync(uri);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsStringAsync();
                    var jsonData = (JObject)JsonConvert.DeserializeObject(result);

                    var message = jsonData["response"]["message"].Value<string>();

                    resultService = message;
                }
            }
            catch
            {
                resultService = "Connection-Error";
            }
            return resultService;
        }

答案 3 :(得分:-1)

您可以使用JObject解析json

    dynamic response = JObject.Parse(jsonString);
    success   = response ?.success;