Внедрение / объединение вложенных массивов с помощью C # / LINQ - PullRequest
2 голосов
/ 07 июня 2019

В настоящее время у меня есть следующая структура JSON:

[
  {
    "parent1": "parent",
    "parentnested1": [
      {
        "nestedvalue1": "example1"
      },
      {
        "nestedvalue1": "example2"
      }
    ],
    "parentnested2": [
      {
        "nestedvalue2": "example1"
      },
      {
        "nestedvalue2": "example2"
      }
    ]
  },
  {
    "parent2": "parent",
    "parentnested1": [
      {
        "nestedvalue1": "example1"
      },
      {
        "nestedvalue1": "example2"
      }
    ],
    "parentnested2": [
      {
        "nestedvalue2": "example1"
      },
      {
        "nestedvalue2": "example2"
      }
    ]
  }
]

Используя каркас сущности / LINQ / C # мне нужно вернуть массив parentnested1 с вложенным в него массив parentnested2:

[
  {
    "parent1": "parent",
    "parentnested1": [
      {
        "nestedvalue1": "example1",
        "parentnested2": [
          {
            "nestedvalue2": "example1"
          },
          {
            "nestedvalue2": "example2"
          }
        ]
      },
      {
        "nestedvalue1": "example2",
        "parentnested2": [
          {
            "nestedvalue2": "example1"
          },
          {
            "nestedvalue2": "example2"
          }
        ]
      }
    ]
  },
  {
    "parent2": "parent",
    "parentnested1": [
      {
        "nestedvalue1": "example1",
        "parentnested2": [
          {
            "nestedvalue2": "example1"
          },
          {
            "nestedvalue2": "example2"
          }
        ]
      },
      {
        "nestedvalue1": "example2",
        "parentnested2": [
          {
            "nestedvalue2": "example1"
          },
          {
            "nestedvalue2": "example2"
          }
        ]
      }
    ]
  }
]

Как мне добиться этого / какой самый чистый способ сделать это?

Нужно ли мне получить оба вложенных массива и затем каким-то образом «вставить» один массив в другой?

Спасибо заВаша помощь в этом.

1 Ответ

1 голос
/ 07 июня 2019

Существует несколько библиотек, которые можно использовать для десериализации и управления структурой Json. Newtonsoft (Json.Net) является одним из них.

string json = "[{...";//you can get the json from a file or depending on the app logic
dynamic jsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
jsonObj["parentnested1"]="...";//do your modificaitons
//you can use the equivalent of xpath as well (SelectToken) and work with it
string data = (string)o.SelectToken("parentnested1[0]");
string output = Newtonsoft.Json.JsonConvert.SerializeObject(jsonObj, Newtonsoft.Json.Formatting.Indented);
json = output;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...