C# 如何解析这个json结果而不在C中生成类#

C# 如何解析这个json结果而不在C中生成类#,c#,json,serialization,C#,Json,Serialization,如果没有c#中的类,我如何解析这个json。我不知道如何使用数组或其他任何东西 这是我想要解析的json结果 { "success": true, "status": 200, "message": "SUCCESS", "response": { "message": "Device Registered", "data": [ { "ID": "607dbb9e08b4c2

如果没有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"
            }
        ]
    }
}

您可以使用Json.NET

这里有文档

简短解释:

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

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

如果要反序列化匿名类型,可以使用此文档,它非常简单


您可以使用Json.NET

这里有文档

简短解释:

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

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

如果要反序列化匿名类型,可以使用此文档,它非常简单

您可以使用而不是创建对象。但动态对象比普通类花费更多的源代码。如果您有性能问题,我不推荐您;如果没有,请点击这里:

  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.
有关更多文档,请查看。

您可以使用而不是创建对象。但动态对象比普通类花费更多的源代码。如果您有性能问题,我不推荐您;如果没有,请点击这里:

  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.

有关更多文档,请查看。

您可以使用JObject解析json

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

您可以使用JObject解析json

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

谢谢大家,我只是自己想出来的。 我就是这么做的


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;
        }


公共异步任务检查设备(字符串id)
{
var uri=new uri(string.Format(Constant.checkDeviceRegistration+“id=“+id,string.Empty));
尝试
{
var response=await client.GetAsync(uri);
if(响应。IsSuccessStatusCode)
{
var result=await response.Content.ReadAsStringAsync();
var jsonData=(JObject)JsonConvert.DeserializeObject(结果);
var message=jsonData[“response”][“message”].Value();
结果服务=消息;
}
}
抓住
{
resultService=“连接错误”;
}
返回结果服务;
}

谢谢大家,我自己就知道了。 我就是这么做的


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;
        }


公共异步任务检查设备(字符串id)
{
var uri=new uri(string.Format(Constant.checkDeviceRegistration+“id=“+id,string.Empty));
尝试
{
var response=await client.GetAsync(uri);
if(响应。IsSuccessStatusCode)
{
var result=await response.Content.ReadAsStringAsync();
var jsonData=(JObject)JsonConvert.DeserializeObject(结果);
var message=jsonData[“response”][“message”].Value();
结果服务=消息;
}
}
抓住
{
resultService=“连接错误”;
}
返回结果服务;
}

您可以使用linq-to-json。可能与Read about
JObject
重复。这就是你需要的。如果您只需要一个值,请按照建议执行,如果您试图节省时间和代码,那么只需将其反序列化为一个具体的类(为reals实际节省时间和代码)。我同意@TheGeneral,为您的JSON数据生成类。这将需要5分钟,但将在将来为您节省大量时间。您可以使用linq-to-json。可能与Read about
JObject
重复。这就是你需要的。如果您只需要一个值,请按照建议执行,如果您试图节省时间和代码,那么只需将其反序列化为一个具体的类(为reals实际节省时间和代码)。我同意@TheGeneral,为您的JSON数据生成类。这需要5分钟,但将来会为您节省很多时间。这是不相关的,因为问题没有创建类。这是不相关的,因为问题没有创建类