web-dev-qa-db-fra.com

Exception d'argument lors de la création de JObject

Si j'ai cette méthode:

public void doSomething (Dictionary<String, Object> data)
{
    JObject jsonObject = new JObject(data);
    ...
}

J'ai un System.ArgumentException sur la ligne où je crée le JObject. J'utilise le wrapper Json.net de Newton-King.

L'erreur que j'obtiens est:

Une exception de première chance de type 'System.ArgumentException' s'est produite dans Newtonsoft.Json.DLL Une exception de type 'System.ArgumentException' s'est produite dans Newtonsoft.Json.DLL mais n'a pas été gérée dans le code utilisateur

Qu'est-ce que je fais mal ici?

44
Nii Laryea

Le constructeur JObject(object) s'attend à ce que l'objet soit un JProperty, un IEnumerable contenant JProperties, ou un autre JObject. Malheureusement, la documentation ne le précise pas.

Pour créer un JObject à partir d'un dictionnaire ou d'un objet simple, utilisez JObject.FromObject à la place:

JObject jsonObject = JObject.FromObject(data);

Pour créer un JObject à partir d'une chaîne JSON, utilisez JObject.Parse , par exemple:

JObject jsonObject = JObject.Parse(@"{ ""foo"": ""bar"", ""baz"": ""quux"" }");
95
Brian Rogers