I got the following error while trying to add an object of type class to the JArray.
Could not determine JSON object type for type \"Class\"
In order to add an arbitrary non-primitive POCO to a JArray
, you must explicitly serialize it, using one of the overloads of 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;
(Note also that I corrected the end condition in your for
loop. It was i <= amounts.Length
, which resulted in an IndexOutOfRangeException
exception.)
Working sample .Net fiddle #1 here.
Alternatively, you could simplify your code with LINQ and JArray.FromObject() by projecting the string array to an AmountModel
enumerable then serializing the entire sequence to a JArray
in one call:
var _JArray = JArray.FromObject(amounts.Select(a => new AmountModel { Amounts = a }));
Sample fiddle #2 here.