有谁知道如何将包含JSON的字符串转换为c#2D数组。我有这个从Web浏览器读取text / json并将其存储到字符串中。
"BoolArry": [
[ true, true, false, ... ],
[ true, true, true, ...],
...,
[ true, false, false, ... ]
]
答案 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];