当前位置: 首页 > 面试题库 >

无法确定类型“类别”的JSON对象类型

轩辕弘雅
2023-03-14
问题内容

尝试将类类型的对象添加到 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”学习“多态”,然后想到了这个概念。有人可以举例说明吗? 编译器检查引用类型的类,而不是对象类型。 那么引用类型和对象类型之间有什么区别? 问题答案: 我认为它们对“对象类型”和“引用类型”的使用不是标准化的,但这是我的解释。 考虑以下代码: 该 引用 是类型的。它引用的 对象 是类型。 因此,“引用类型”为,“对象类型”为。 造成这种混乱的原因是