今天特意整理了下json数组如何生成,因为以前需要用到json数组的时候都偷懒,使用i.ToString();
先拿一个三维数组来举例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Microsoft.Office.Interop.Excel;
using System.Diagnostics;
using System.Text.RegularExpressions;
using LitJson;
namespace TestPath
{
class Program
{
static void Main(string[] args)
{
int[,,] a = new int[2, 2, 2];
a[0, 0, 0] = 2;
a[0, 0, 1] = 3;
a[0, 1, 0] = 2;
a[0, 1, 1] = 4;
a[1, 0, 0] = 2;
a[1, 0, 1] = 5;
a[1, 1, 0] = 2;
a[1, 1, 1] = 6;
//声明一个Json对象
JsonData data = new JsonData();
for (int i = 0; i < a.GetLength(0); ++i)
{
//往Json对象里添加索引键i
data.Add(i);
//将data[i]初始化为新的JsonData对象,否则会nullReference
data[i] = new JsonData();
for (int j = 0; j < a.GetLength(1); ++j)
{
//同理,这时候需要往data[i]里添加j的索引键
data[i].Add(j);
data[i][j] = new JsonData();
for (int k = 0; k < a.GetLength(2); ++k)
{
data[i][j].Add(k);
data[i][j][k] = a[i, j, k];
}
}
}
string json = data.ToJson();
//json:[[[2,3],[2,4]],[[2,5],[2,6]]]
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);
File.WriteAllBytes(@"E:\jjj.json", bytes);
}
}
}
//忽略不必要的using,因为这个工程通常是拿来测试的。
其中每次需要添加新的整形索引键时,必须用.Add(int)方法来添加,这样才可以继续初始化data[i],因为data[i]是存在的。
如果是字符串的索引键,则可以直接data[string key]来增加键值对。