将json字符串转换为二维bool数组

时间:2015-05-21 11:58:43

标签: c# arrays json

有谁知道如何将包含JSON的字符串转换为c#2D数组。我有这个从Web浏览器读取text / json并将其存储到字符串中。

 "BoolArry": [
               [ true, true, false, ... ],
               [ true, true, true, ...],
               ...,
               [ true, false, false, ... ]
             ]

2 个答案:

答案 0 :(得分:1)

您可以使用.Net提供的JavaScript序列化程序:JavaScriptSerializer(使用using System.Web.Script.Serialization;

var boolArrayStr =
    @"[
        [ true, true, true ],
        [ true, true, false ],
        [ true, false, false ],
        [ false, false, false ],
    ]";

JavaScriptSerializer jss = new JavaScriptSerializer();

bool[][] boolArrays = jss.Deserialize<bool[][]>(boolArrayStr);

foreach (bool[] array in boolArrays)
{
    foreach (bool val in array)
    {
        Console.Write(val);
        Console.Write(" ");
    }

    Console.WriteLine("");
}

输出是:

True True True
True True False
True False False
False False False

答案 1 :(得分:0)

我把Json写入文件(D:\ Temp \ text.txt):

[
  [ true, true, false ],
  [ true, true, true ],
  [ true, false, false ]
]

您可以将其视为Newtonsoft.Json.Linq.JArray并按您的意愿转换:

Newtonsoft.Json.Linq.JArray obj = Newtonsoft.Json.JsonConvert.DeserializeObject(File.ReadAllText(@"D:\Temp\text.txt")) as Newtonsoft.Json.Linq.JArray;
var arr = (from e in obj select e.Values<bool>().ToArray()).ToArray();

arr的类型为bool[][](数组数组)

用法:

bool value = arr[x][y];