【问题标题】:Filter Json output using C#使用 C# 过滤 Json 输出
【发布时间】:2020-03-28 17:07:57
【问题描述】:

我使用 C# 通过 HTTPClient 请求得到一个 json 结果,输出将如下所述

{
  "status": 1,
  "message": "",
  "data": {
    "username": "abcdefghi",
    "password": "oiwenkwjw"
  }
}

我只需要在静态类中使用 C# 过滤“数据”对象,使用 LINQ 或任何其他简单方法没有问题,但无需为其创建单独的类,任何小的帮助将不胜感激,谢谢

【问题讨论】:

    标签: c# .net json filter


    【解决方案1】:
    using Newtonsoft.Json.Linq;  -- i used newtonsoft json api
    
    string jsonData = @"{  
        'status': 1,
        'message': '',
        'data': {
        'username': 'abcdefghi',
        'password': 'oiwenkwjw'
        }
        }";
    
    var details = JObject.Parse(jsonData);
    Console.WriteLine(details["data"]);
    
    

    【讨论】:

      【解决方案2】:

      您还可以定义一些类来为您的 JSON 建模:

      public class Data
      {
          public string Username { get; set; }
          public string Password { get; set; }
          public override string ToString()
          {
              return JsonConvert.SerializeObject(this, Formatting.Indented);
          }
      }
      
      public class RootObject
      {
          public int Status { get; set; }
          public string Message { get; set; }
          public Data Data { get; set; }
      }
      

      然后使用Json.NET反序列化JSON并从覆盖的ToString()方法输出Data

      string jsonData = @"{  
          'status': 1,
          'message': '',
          'data': {
              'username': 'abcdefghi',
              'password': 'oiwenkwjw'
           }
       }";
      
       var deserializedJson = JsonConvert.DeserializeObject<RootObject>(jsonData);
      
       Console.WriteLine(deserializedJson.Data);
      

      输出:

      {
          "Username": "abcdefghi",
          "Password": "oiwenkwjw"
      }
      

      【讨论】:

        猜你喜欢
        • 2021-12-23
        • 2020-10-17
        • 2022-11-12
        • 2017-06-05
        • 2019-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多