C#生成Json的多维数组

今天特意整理了下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]来增加键值对。

猜你喜欢

转载自blog.csdn.net/DoyoFish/article/details/82881608
今日推荐