У меня есть JObject (с использованием JSON.Net), который я создал, анализируя некоторый текст JSON. Я непосредственно манипулирую, добавляя ключи на верхнем уровне этого JObject. У меня нет проблем, когда значение, которое я добавляю, является строкой:
json["newkey"] = "New Value"; // works
Но я буду проклят, если смогу выяснить, как добавить словарь, например:
Dictionary<string,string> dict = new Dictionary<string,string>();
dict["one"] = "1";
dict["two"] = "2";
json["dict"] = dict; // fails
Я сделал довольно много поисковых запросов и читал документы JSON.Net, но все кажется ориентированным на разумный текст JSON в JObject или написание объектов .NET в виде текста JSON с использованием сериализации. Или используя некоторые причудливые операторы LINQ для выполнения всех видов сложных объектов...
Я пробовал эти и никто не работал:
json["dict"] = new JObject(dict);
json["dict"] = new JObject((Dictionary<string,string>)dict);
json["dict"] = new JArray(dict); // desperation sets in :)
json["dict"] = (JObject)dict; // please dear god let this work
Большинство последних ошибок, с которыми я сталкиваюсь, следующие:
Не удалось определить тип объекта JSON для типа System.Collections.Generic.KeyValuePair`2 [System.String, System.String].