Слияние массива json с помощью MergeArrayHandling.Merge. Как определить индекс в библиотеке newtonsoft - PullRequest
0 голосов
/ 30 октября 2019

Давайте сначала возьмем 2 массива:

[{"name": "a", "innerArray": [{"first": 1, "second": 1}, {"first": 2," second ": 2},]}, {" name ":" b "," innerArray ": [{" first ": 1," second ": 1}, {" first ": 2,"second ": 2},]}]

second

[{" name ":" a "," innerArray ": [{" first ": 1,«second»: 11}, {«first»: 3, «second»: 22},]}, {«name»: «c», «innerArray»: [{«first»: 1, «second»: 1}, {"first": 2, "second": 2},]}]

Я хочу объединить их, получив такой вывод

[{"name ":" a "," innerArray ": [{" first ": 1," second ": 11}, {" first ": 2," second ": 2}, {" first ": 3," second ": 22}]}, {"name": "b", "innerArray": [{"first": 1, "second": 1}, {"first": 2, "second": 2},]}, {"name": "c", "innerArray": [{"first": 1, "second": 1}, {"first": 2, "second": 2},]}]

Возможно ли это с помощью json.net? Я знаю, что есть опция MergeArrayHandling, которая может быть установлена ​​в MergeArrayHandling.Merge, которая в описании определяется как «Объединить элементы массива вместе, сопоставленные по индексу». Однако я не нашел ни одного примера.

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

JArray o1 = JArray.Parse(@"first array")
JArray o2 = JArray.Parse(@"second array")

o1.Merge(o2, new JsonMergeSettings
{
MergeArrayHandling = MergeArrayHandling.Merge
});

string json = o1.ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...