Jak deserializować JSON z duplikatami nazw właściwości w tym samym obiekcie

Mam ciąg JSON, który powinien zawierać zduplikowane klucze, z których nie jestem w stanie zadowolić JSON.NET.

Zastanawiałem się, czy ktoś zna najlepszy sposób (może używającJsonConverter? ) aby zmienić JSON.NETJObjectdzieckoJObjects w totoJArrays kiedy widzi zduplikowane nazwy kluczy?

// 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 }");

Rzeczywisty JSON, który próbuję deserializować, jest znacznie bardziej skomplikowany, a duplikaty są zagnieżdżone na wielu poziomach. Ale powyższy kod pokazuje, dlaczego mi się nie udaje.

Rozumiem, że JSON nie jest poprawny, dlatego pytam, czy JSON.NET ma sposób na obejście tego problemu. Dla dobra argumentu powiedzmy, że nie mam kontroli nad JSON. W rzeczywistości używam określonego typu dla obiektu nadrzędnego, ale szczególną właściwością, która ma problem, będzie łańcuch lub inny zagnieżdżony obiekt JSON. Z tego powodu niepoprawny typ właściwości to „obiekt”.

questionAnswers(3)

yourAnswerToTheQuestion