Подтвердить что ты не робот

Исключение аргумента при создании 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, но не был обработан в коде пользователя

Что я здесь делаю неправильно?

4b9b3361

Ответ 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"" }");