无法确定类型“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
,这导致了IndexOutOfRangeException
exception。)
工作样本.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