将键值对添加到 JToken/JArray

我有一个 JSON 文档,其中包含一些数据,如下所示:


[

    {

        "id": 1,

        "candidate": {

            "firstName": "Subahar",

            "lastName": "Kumar",

            "alias": "S K"

        },

        "seatNo": "WKS14",

        "checkInStatus": "NoShow",

        "tests": [

            {

                "examCode": "OI4-759F",

                "examName": "OI Professional of Fish",

                "confirmationNo": "1-3966461574",

                "keyCode": "3bdb987e-3623-4edc-9c24-ec9652ac6ac8",

                "startDate": "1/4/2019",

                "scheduledDuration": "1",

                "startTime": "1200",

                "endTime": "1300",

                "resultStatus": "NotApplicable",

                "testStatus": "Voided"

            },

            {

                "examCode": "CY6-628F",

                "examName": "CY Quiz of Art",

                "confirmationNo": "1-6221969273",

                "keyCode": "2e08c13a-2e52-4bc6-a771-af1670d00d15",

                "startDate": "1/4/2019",

                "scheduledDuration": "1",

                "startTime": "1200",

                "endTime": "1300",

                "resultStatus": "NotApplicable",

                "testStatus": "Voided"

            },              

  }

],


我想要做的是在 JToken/JObject 中添加一个键值对,其中确认号是特定的。对于这种情况,我想将键值对添加("actions":"Launch, Ready, Done")到 {} 中的 Jtoken/对象,其中确认号"1-3966461574"位于测试数组中。这是我到目前为止所做的


JArray rosterData = GetRosterData();

        foreach (var roster in rosterData.Children<JObject>()) {

            foreach (var property in roster.Properties()) {

                if (property.Name.Equals("tests")) {


                }


            }

        }

这是我被困的地方,因为我不知道如何进一步进行。


小唯快跑啊
浏览 187回答 1
1回答

紫衣仙女

你可以这样尝试:static void Main(string[] args){&nbsp; &nbsp; string input = @"&nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'id': 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'candidate': {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'firstName': 'Subahar',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'lastName': 'Kumar',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'alias': 'S K'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'seatNo': 'WKS14',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'checkInStatus': 'NoShow',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'tests': [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'examCode': 'OI4-759F',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'examName': 'OI Professional of Fish',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'confirmationNo': '1-3966461574',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'keyCode': '3bdb987e-3623-4edc-9c24-ec9652ac6ac8',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'startDate': '1/4/2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'scheduledDuration': '1',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'startTime': '1200',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'endTime': '1300',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'resultStatus': 'NotApplicable',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'testStatus': 'Voided'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'examCode': 'CY6-628F',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'examName': 'CY Quiz of Art',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'confirmationNo': '1-6221969273',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'keyCode': '2e08c13a-2e52-4bc6-a771-af1670d00d15',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'startDate': '1/4/2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'scheduledDuration': '1',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'startTime': '1200',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'endTime': '1300',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'resultStatus': 'NotApplicable',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'testStatus': 'Voided'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'examCode': 'SH4-390F',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'examName': 'SH Quiz of Physics',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'confirmationNo': '3-5058796552',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'keyCode': '4566b64f-80a3-409e-a0ab-736c8dcf07b6',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'startDate': '1/4/2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'scheduledDuration': '1',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'startTime': '1200',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'endTime': '1300',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'resultStatus': 'NotApplicable',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'testStatus': 'Voided'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'candidateFirstName': 'Subahar',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'candidateLastName': 'Kumar',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'candidateAlias': 'S K'&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; ]";&nbsp; &nbsp; JArray j = JArray.Parse(input);&nbsp; &nbsp; foreach (JToken item in j)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; foreach (JToken innerItem in item["tests"].Where(x => x["confirmationNo"].ToString() == "1-3966461574"))&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; innerItem["actions"] = "Launch, Ready, Done";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP