Как десериализовать JSON с повторяющимися именами свойств в одном и том же объекте

У меня есть строка JSON, которая, как я ожидаю, будет содержать дубликаты ключей, и я не могу порадовать JSON.NET.

Мне было интересно, если кто-нибудь знает лучший способ (может быть, используяJsonConverter? ) чтобы получить JSON.NET для измененияJObjectребенокJObjects вJArrays когда он видит дубликаты имен ключей?

// For example: This gives me a JObject with a single "JProperty\JObject" child.
var obj = JsonConvert.DeserializeObject<object>("{ \"HiThere\":1}");

// This throws:
// System.ArgumentException : Can not add Newtonsoft.Json.Linq.JValue to Newtonsoft.Json.Linq.JObject.
obj = JsonConvert.DeserializeObject<object>("{ \"HiThere\":1, \"HiThere\":2, \"HiThere\":3 }");

Фактический JSON, который я пытаюсь десериализовать, намного сложнее, и дубликаты вложены на нескольких уровнях. Но приведенный выше код демонстрирует, почему мне это не удается.

Я понимаю, что JSON неверен, поэтому я спрашиваю, есть ли в JSON.NET способ обойти это. Ради аргумента, скажем, у меня нет контроля над JSON. Я действительно использую определенный тип для родительского объекта, но конкретное свойство, которое вызывает проблемы, будет либо строкой, либо другим вложенным объектом JSON. По этой причине ошибочный тип свойства - «объект».

Ответы на вопрос(3)

Ваш ответ на вопрос