Исключение аргумента при создании JObject
Если у меня есть этот метод:
public void doSomething (Dictionary<String, Object> data)
{
JObject jsonObject = new JObject(data);
...
}
Я получаю System.ArgumentException
в строке, где я создаю объект JObject. Я использую оболочку Newton-King Json.net.
Ошибка, которую я получаю:
Произошло первое исключение типа "System.ArgumentException" в Newtonsoft.Json.DLL Исключение типа 'System.ArgumentException' произошел в Newtonsoft.Json.DLL, но не был обработан в коде пользователя
Что я здесь делаю неправильно?
Ответы
Ответ 1
Конструктор JObject(object)
ожидает, что объект будет либо JProperty
, либо IEnumerable
, содержащим JProperties
, либо другим JObject
. К сожалению, в документации это не делается.
Чтобы создать JObject
из словаря или простого объекта, используйте JObject.FromObject
:
JObject jsonObject = JObject.FromObject(data);
Чтобы создать JObject
из строки JSON, используйте JObject.Parse
, например:
JObject jsonObject = JObject.Parse(@"{ ""foo"": ""bar"", ""baz"": ""quux"" }");