如果我有这个方法:
public void doSomething (Dictionary<String, Object> data)
{
JObject jsonObject = new JObject(data);
...
}
我在创建JObject的行上得到System.ArgumentException
。我正在使用Newton-King的Json.net包装器。
我得到的错误是:
发生了'System.ArgumentException'类型的第一次机会异常 in Newtonsoft.Json.DLL类型'System.ArgumentException'的异常 发生在Newtonsoft.Json.DLL但未在用户代码中处理
我在这里做错了什么?
答案 0 :(得分:91)
JObject(object)
构造函数期望该对象是JProperty
,IEnumerable
包含JProperties
或其他JObject
。不幸的是,文档没有说明这一点。
要从字典或普通对象创建JObject
,请改用JObject.FromObject
:
JObject jsonObject = JObject.FromObject(data);
要从JSON字符串创建JObject
,请使用JObject.Parse
,例如:
JObject jsonObject = JObject.Parse(@"{ ""foo"": ""bar"", ""baz"": ""quux"" }");