簡體   English   中英

C#挑選出數據形式JSON

[英]c# pick out data form json

我希望能夠使用C#在下面的json中提取所有數據點。 我需要所有StandardId的所有值。 不僅是單個數據點,而且是StandardId的所有實例

{
  "CreatedBy": null,
  "CanBeRemoved": false,
  "ConfigurationItems": [ "" ],
  "ApprovalReasons": [
    {
      "AssociatedCI": "",
      "AssociatedRuleName": "BRS: ",
      "AssociatedRuleApprovalType": null,
      "AssociatedRulePartyType": "Group",
      "AssociatedRulePartyName": "Digital ",
      "AssociatedAdditionalComment": "Added to all "
    }
  ],
  "PossibleApprovers": [
    {
      "Approver": {
        "Display": "Jag",
        "StandardId": "I6",
        "RoleName": null,
        "FullName": null,
        "LineOfBusiness": null,
        "ErrorMessage": null
      },
      "IsEscalation": false,
      "IsDelegate": false
    },
    {
      "Approver": {
        "Display": "Will",
        "StandardId": "U55",
        "RoleName": null,
        "FullName": null,
        "LineOfBusiness": null,
        "ErrorMessage": null
      },
      "IsEscalation": false,
      "IsDelegate": false
    },

    {
      "Approver": {
        "Display": "Su",
        "StandardId": "U2",
        "RoleName": null,
        "FullName": null,
        "LineOfBusiness": null,
        "ErrorMessage": null
      },
      "IsEscalation": false,
      "IsDelegate": false
    }
  ],
  "OriginalApprovals": [],
  "AggregatedApproval": null,
  "IsAggregated": false,
  "AggregationId": 0,
  "UpdatedBy": null,
  "UpdatedDt": null,
  "IsGroupActive": false
}

最簡單的方法是@maccettura共享一股。

創建一個C#對象

打開json2csharp a生成您的類。 Visual Studio也可以為您生成它:

如何產生

使用JSON.NET反序列化您的類

文檔易於使用,您可以在第一頁中找到您的信息。

Foo foo = JsonConvert.DeserializeObject<Foo>(json);

演示版

在線嘗試

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

public class Program
{
    public static void Main()
    {
        string json = @"{
""CreatedBy"": null,
""CanBeRemoved"": false,
""ConfigurationItems"": [ """" ],
""ApprovalReasons"": [
{
  ""AssociatedCI"": """",
  ""AssociatedRuleName"": ""BRS: "",
  ""AssociatedRuleApprovalType"": null,
  ""AssociatedRulePartyType"": ""Group"",
  ""AssociatedRulePartyName"": ""Digital "",
  ""AssociatedAdditionalComment"": ""Added to all ""
}],
""PossibleApprovers"": [
{
  ""Approver"": {
    ""Display"": ""Jag"",
    ""StandardId"": ""I6"",
    ""RoleName"": null,
    ""FullName"": null,
    ""LineOfBusiness"": null,
    ""ErrorMessage"": null
  },
  ""IsEscalation"": false,
  ""IsDelegate"": false
},
{
  ""Approver"": {
    ""Display"": ""Will"",
    ""StandardId"": ""U55"",
    ""RoleName"": null,
    ""FullName"": null,
    ""LineOfBusiness"": null,
    ""ErrorMessage"": null
  },
  ""IsEscalation"": false,
  ""IsDelegate"": false
},
{
  ""Approver"": {
    ""Display"": ""Su"",
    ""StandardId"": ""U2"",
    ""RoleName"": null,
    ""FullName"": null,
    ""LineOfBusiness"": null,
    ""ErrorMessage"": null
  },
  ""IsEscalation"": false,
  ""IsDelegate"": false
}],
""OriginalApprovals"": [],
""AggregatedApproval"": null,
""IsAggregated"": false,
""AggregationId"": 0,
""UpdatedBy"": null,
""UpdatedDt"": null,
""IsGroupActive"": false
}";

        var m = JsonConvert.DeserializeObject<RootObject>(json);

        foreach(var possibleApprovers in m.PossibleApprovers)
        {
            Console.WriteLine(possibleApprovers.Approver.StandardId);
        }
    }

    public class ApprovalReason
    {
        public string AssociatedCI { get; set; }
        public string AssociatedRuleName { get; set; }
        public object AssociatedRuleApprovalType { get; set; }
        public string AssociatedRulePartyType { get; set; }
        public string AssociatedRulePartyName { get; set; }
        public string AssociatedAdditionalComment { get; set; }
    }

    public class Approver
    {
        public string Display { get; set; }
        public string StandardId { get; set; }
        public object RoleName { get; set; }
        public object FullName { get; set; }
        public object LineOfBusiness { get; set; }
        public object ErrorMessage { get; set; }
    }

    public class PossibleApprover
    {
        public Approver Approver { get; set; }
        public bool IsEscalation { get; set; }
        public bool IsDelegate { get; set; }
    }

    public class RootObject
    {
        public object CreatedBy { get; set; }
        public bool CanBeRemoved { get; set; }
        public List<string> ConfigurationItems { get; set; }
        public List<ApprovalReason> ApprovalReasons { get; set; }
        public List<PossibleApprover> PossibleApprovers { get; set; }
        public List<object> OriginalApprovals { get; set; }
        public object AggregatedApproval { get; set; }
        public bool IsAggregated { get; set; }
        public int AggregationId { get; set; }
        public object UpdatedBy { get; set; }
        public object UpdatedDt { get; set; }
        public bool IsGroupActive { get; set; }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM