尝试将类类型的对象添加到 JArray时 遇到以下错误。
Could not determine JSON object type for type "Class"
这是我正在使用的代码:
private dynamic _JArray = null
private JArray NArray(Repository repository)
{
_JArray = new JArray();
string[] amounts = repository.Amounts.Split('|');
for (int i = 0; i <= amounts.Length; i++)
{
_JArray.Add(
new AmountModel
{
Amounts = amounts[i],
});
}
return _JArray;
}
public class AmountModel
{
public string Amounts;
}
在运行程序时,我将其命名如下:
_JArray = NArray(repository);
Console.WriteLine(JsonConvert.SerializeObject(_JArray));
如何转换 _JArray(JArray) 内的 AmountModel(类) 以被系统识别为JSON对象?
非常感谢您的回答。
谢谢。
为了将任意非原始POCO添加到中JArray
,您必须使用以下重载之一显式序列化它JToken.FromObject()
:
_JArray = new JArray();
string[] amounts = repository.Amounts.Split('|');
for (int i = 0; i < amounts.Length; i++)
{
_JArray.Add(JToken.FromObject(
new AmountModel
{
Amounts = amounts[i],
}));
}
return _JArray;
(另请注意,我已更正了for
循环中的结束条件。它是i <= amounts.Length
,导致出现IndexOutOfRangeException
异常。)
工作样本.Net 在这里#1 。
另外,您可以使用LINQ简化代码,方法JArray.FromObject()
是将字符串数组投影为AmountModel
可枚举,然后将整个序列序列化为JArray
一个调用:
var _JArray = JArray.FromObject(amounts.Select(a => new AmountModel { Amounts = a }));
在这里样本小提琴2 。
问题内容: 有没有一种简单的方法来确定变量是列表,字典还是其他?我回来的对象可能是任何一种类型,我需要能够分辨出两者之间的区别。 问题答案: 有两个内置函数可以帮助你识别对象的类型。你可以使用,如果你需要一个对象的确切类型,并以检查对象的反对的东西类型。通常,你希望使用大多数时间,因为它非常健壮并且还支持类型继承。 要获取对象的实际类型,请使用内置函数。将对象作为唯一参数传递将返回该对象的类型对象
我将使用 python 作为我正在寻找的示例(如果您不了解 Python,您可以将其视为伪代码): 我知道在红宝石中我可以做到: 但这是确定对象类型的正确方法吗?
本文向大家介绍js对象类型,基本对象类型以及引用对象类型的区别?相关面试题,主要包含被问及js对象类型,基本对象类型以及引用对象类型的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 分为基本对象类型和引用对象类型 基本数据类型:按值访问,可操作保存在变量中的实际的值。基本类型值指的是简单的数据段。基本数据类型有这六种:undefined、null、string、number、bool
下面是我收到错误的代码(在“new”之后的第二个“Killer”处)。 这给我带来了不少麻烦,因为我看不出为什么基于Killer的构造函数,这个声明应该有效。 这是杀手班: 我知道这可能有一个简单的解决方案,但到目前为止,我还没有看到。
我是java初学者,我不理解这行代码是什么意思 平均值。为什么不能访问自己的方法。请详细解释如果类A正在实例化,那么为什么它的方法不可访问。
问题内容: 我从“ Head First Java”学习“多态”,然后想到了这个概念。有人可以举例说明吗? 编译器检查引用类型的类,而不是对象类型。 那么引用类型和对象类型之间有什么区别? 问题答案: 我认为它们对“对象类型”和“引用类型”的使用不是标准化的,但这是我的解释。 考虑以下代码: 该 引用 是类型的。它引用的 对象 是类型。 因此,“引用类型”为,“对象类型”为。 造成这种混乱的原因是