Csharp/C#教程:无法确定类型“Class”的JSON对象类型分享


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

尝试将类型类的对象添加到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 ,这导致了IndexOutOfRangeExceptionexception。)

工作样本.Net小提琴#1 在这里 。

或者,您可以使用LINQ和JArray.FromObject()通过将字符串数组投影到可枚举的AmountModel然后在一次调用中将整个序列序列化为AmountModel来简化代码:

 var _JArray = JArray.FromObject(amounts.Select(a => new AmountModel { Amounts = a })); 

在这里示例小提琴#2。

上述就是C#学习教程:无法确定类型“Class”的JSON对象类型分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1004927.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐