方法参数为[FromBody]object content
JObject jo = (JObject)JsonConvert.DeserializeObject(content.ToString());
JToken[] jtoArray = jo["contentBody"].ToArray();
List<T> contentBody = new List<T>();
foreach (var jto in jtoArray)
{
contentBody.Add(jto.ToObject<T>());
}
解决方法方法参数为[FromBody]object contentJObject jo = (JObject)JsonConvert.DeserializeObject(content.ToString());JToken[] jtoArray = jo["contentBody"].ToArray();List<T> contentBody = new List&...
1、问题描述
C#使用
Newton
soft
.
Json
将 一般对象 序列化和反序列化为
json
时,一般使用 Serialize
Object
() 和 Deserialize
Object
() 即可。
但是,当对象中包含一个自定义集合对象时,仅仅使用Deserialize
Object
() 无法正确实现反序列化。
有可能报错:
无法将类型为“
Newton
soft
.
Json
.
Linq
.J
Object
”的对象强制转换
2、代码说明
直接用一段示例代码,进行说明。
2.1 准备阶段
示例准备3个类:
Action 类:
得到这种方法没有发现错误需要一个罕见的因素组合。如果您没有看到它,那么随便忽略这篇博文。
如果您是最终用户,并且您收到此错误,请确保您的应用程序加载的
Json
.NET的版本是5.0.8。如果您的\ bin目录中有5.0.8,您仍然会收到此错误,然后检查GAC,并在必要时对其进行更新。
如果您是一个软件包作者,并且用户报告从代码中收到此错误,请降级软件包正在使用的
Json
.NET版本5.0.4,
JSON
字符串转换为J
Object
时报出该异常信息"Can not add
Newton
soft
.
Json
.
Linq
.JValue to
Newton
soft
.
Json
.
Linq
.J
Object
."
网上有热心网友贴出应该使用如下转换:
(J
Object
)
Json
Convert.Deserialize
Object
(str);
但包括以下两种方式均测试,无效。
Json
Convert.Des...
I have the following variable of type {
Newton
soft
.
Json
.
Linq
.JArray}.
我有这么一组数组对象properties["Value"] {[
"Name": "Username",
"Selected": true
"Name": "Password",
"Selected":
VB.NET 中使用
Newton
soft
.
Json
的操作实例:
首先需要安装
Newton
soft
.
Json
包,可以在 Visual Studio 中使用 NuGet 管理器安装。
实例代码:
1. 序列化:
Imports
Newton
soft
.
Json
Dim obj As
Object
= New With {
Key .name = "John Doe",
Key .age = 30,
Key .email = "john@doe.com"
Dim
json
As String =
Json
Convert.Serialize
Object
(obj)
2. 反序列化:
Imports
Newton
soft
.
Json
Dim
json
As String = "{'name':'John Doe','age':30,'email':'john@doe.com'}"
Dim obj As
Object
=
Json
Convert.Deserialize
Object
(Of
Object
)(
json
)
以上代码只是一个简单的例子,您可以根据自己的需要对对象进行定义以及对
JSON
字符串进行修改。