Как добавить значения в массив Json, чтобы установить одинаковый размер массива - PullRequest
0 голосов
/ 25 марта 2020

Я хочу, чтобы все мои json размеры массива были равны, предположим, что мой предел массива равен 2, в моем массиве json многие имеют меньшее или высокое значение json, чем 2. Если размер объекта массива меньше 2, добавить пустой массив с нулевыми значениями и, если больше 2, удалить.

{
  "data": {
    "getUsers": [
      {
        "UserProfileDetail": {
          "UserStatus": {
            "name": "User One"
          },
          "UserStatusDate": "2018-10-31T06:12:42+00:00",
          "EnrollId": "am**********************************",
          "lastDate": "2019-07-22T03:05:39.0245313-04:00"
        },
        "UserInformation": {
          "Id": 1111122,
          "firstName": "*****",
          "middleName": null,
          "lastName": "*****",
          "otherNames": null,
          "primaryState": "MA",
          "otherState": [
            "MA",
            "BA",
            "DL",
            "RJ"
          ],
          "UserLicense": [
            {
              "licenseState": "MA",
              "licenseNumber": "000000000",
              "licenseStatus": null,
              "aaaaaaaaaaaaaaaaa": "only one"
            },
            {
              "licenseState": "MA2",
              "licenseNumber": "0000000002",
              "licenseStatus": null,
              "aaaaaaaaaaaaaaaaa": "only one2"
            },
            {
              "licenseState": "MA3",
              "licenseNumber": "0000000003",
              "licenseStatus": null,
              "aaaaaaaaaaaaaaaaa": "only one3"
            }
          ],
          "UserLocation": [
            {
              "location": "DL",
              "SubrLocation": [
                {
                  "sub location1": "DL1",
                  "sub location2": "DL2"
                }
              ]
            }
          ],
          "Setting": "ADMINISTRATIVE",
          "primaryEmail": "*****@*****.com",
          "modifiedAt": null,
          "createdAt": null
        }
      },
      {
        "UserProfileDetail": {
          "UserStatus": {
            "name": "User Two"
          },
          "UserStatusDate": "2019-10-31T06:12:42+00:00",
          "EnrollId": "am**********************************",
          "lastDate": "2019-07-22T03:05:39.0245313-04:00"
        },
        "UserInformation": {
          "Id": 443333,
          "firstName": "*****",
          "middleName": "Jhon",
          "lastName": "*****",
          "otherNames": null,
          "primaryState": "AK",
          "otherState": [
            "MP",
            "CLT"
          ],
          "UserLicense": [
            {
              "licenseState": "KL",
              "licenseNumber": "000000220",
              "licenseStatus": "Valid"
            }
          ],
          "UserLocation": [
            {
              "location": "KL",
              "SubrLocation": [
                {
                  "sub location1": "KL",
                  "sub location2": "KL2"
                },
                {
                  "sub location1": "TN",
                  "sub location2": "TN2"
                }
              ]
            }
          ],
          "Setting": "ADMINISTRATIVE",
          "primaryEmail": "*****@*****.com",
          "modifiedAt": null,
          "createdAt": null
        }
      }
    ]
  }
}

В следующем примере найден следующий объект массива. 1.UserLicense 2.UserLocation 3.SubrLocation

Местоположение 'UserLicense' в первом json равно 3, а во втором json два. Я хочу удалить один из первых json и добавить пустой json во второй. вот так я хочу весь массив json (включая вложенный json объект массива). Я знаю, что это не правильное требование / метод. какое-то тело, пожалуйста, помогите мне

1 Ответ

0 голосов
/ 25 марта 2020

Это общий c вопрос о работе с json in. NET.

Опция 1

Вы можете создать модель класса, которая представляет ваш json, затем загрузить ее с JsonConvert.DeserializeObject, затем внести изменения в модель и сериализовать обратно к json с JsonConvert.SerializeObject.

Два верхних элемента будут выглядеть следующим образом:

public class TopElement
{
    [JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)]
    public Data Data { get; set; }
}
public class Data
{
    [JsonProperty("getUsers", NullValueHandling = NullValueHandling.Ignore)]
    public GetUsers[] GetUsers { get; set; }
}
// ... and so on

Десериализация json из строки:

var obj = JsonConvert.DeserializeObject<TopElement>(jsonString);

Опция 2

Вы можете напрямую использовать JObject для загрузки json и затем вносить в него изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...