如何最好地将Type类型的JArray转换为类型数组?

mos*_*ald 43 c# json.net

我有一个JArray代表json子串的代码[1,2,3].我想把它变成一个int[].

这样做的正确方法是什么?我到目前为止找到的最好方法是执行以下操作:

int[] items = new int[myJArray.Count];

int i = 0;
foreach (int item in myJArray)
{
    items[i++] = item;
}
Run Code Online (Sandbox Code Playgroud)

L.B*_*L.B 56

int[] items = myJArray.Select(jv => (int)jv).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 现在这也可以作为`myJArray.Cast <int>().ToArray();`它稍微冗长一点. (10认同)

Dam*_*enG 49

myJArray.ToObject<int[]>();
Run Code Online (Sandbox Code Playgroud)

您还可以指定HashSet,List等.

接受的答案依赖于.NET的转换 - 这种技术除了.NET可以提供的内容之外还使用JSON.NET,因此可以使用更多场景.

  • 这对我有用,而接受的答案却没有.我不知道为什么,JSON.Net似乎需要巫毒魔法来找到解析给定对象的正确语法. (2认同)
  • 谢谢!我发现这也适用于数组数组!前任。`myJArray.ToObject&lt;int[][]&gt;();` (2认同)