Próbuję przekonwertować niektóre starsze prace, aby używać Newtonsoft JSON.NET. Domyślna obsługa za pomocą metody System.Web.Script.Serialization.JavaScriptSerializer.Deserialize
(np. Jeśli nie określono typu celu) to zwrócenie obiektu Dictionary<string,object>
dla obiektów wewnętrznych.Deserializuj rekursywnie JSON do IDictionary <ciąg, obiekt>
Jest to naprawdę bardzo przydatny podstawowy typ JSON, ponieważ jest on również typem bazowym używanym przez ExpandoObjects
i jest najbardziej sensowną implementacją wewnętrzną dla typów dynamicznych.
Gdybym określić tego typu, np .:
var dict = JsonConvert.DeserializeObject<Dictionary<string,object>>(json);
JSON.NET będzie poprawnie deserializowania zewnętrzną strukturę obiektu, ale zwraca JObject
typ dla wszelkich wewnętrznych struktur. To, czego naprawdę potrzebuję, to ta sama zewnętrzna struktura, która ma być użyta do jakichkolwiek wewnętrznych struktur typu obiektowego.
Czy istnieje sposób określenia typu, który ma być używany dla obiektów wewnętrznych, a nie tylko zwracany typ zewnętrzny?
Czy to jest poprawna odpowiedź? –
@LukePuplett Nie sądzę, że jest to poprawne, w oparciu o zadane pytanie. –
Na podstawie pytania nie jest to poprawna odpowiedź w ogóle. –