C# Newtonsoft Jarray 添加二维数组 异常---不按套路出牌
比如
JArray a = new JArray();
for (int i = 0; i < 20; i++)
{
String s1 = i + "";
String s2 = i + "y";
String[] d = new string[2];
d[0] = s1;
d[1] = s2;
a.Add((Object)d);
}
我期望结果是
{[[ "0", "0y"], ["1", "1y"], ["2", "2y"], ["3", "3y"], ["4", "4y"], ["5", "5y"],......]]}结果是
{ ["0", "0y", "1", "1y", "2", "2y", "3", "3y", "4", "4y", "5", "5y",......]}
为什么数组的中括号合并了呢?
感谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个实际上看下源码就明白了,你执行的
JArray.Add
方法实际上会调用JContainer.IsMultiContent
方法去判断要添加的对象是否是可枚举的集合,如果是的话逐个处理(就是你给出的示例中的)。想要达成你的需求,可以使用
List<object[]>
来构建后再使用JsonConvert
来进行序列化,如下:可以这样:
或者直接把
d
定义为JAraay
。或者干脆就直接用 Linq 来生成二维数组,再用
JsonConvert
来序列化成 JSON