如何将JavaScript多维数组解析为c#数组? JavaScript数组的
问题描述:
示例:如何将JavaScript多维数组解析为c#数组? JavaScript数组的
var array_1 = [["string 1", 2013, "string 2"], "string 3", ["string 4", , "string 5"]];
/* array_1[0][2] = "string 2" */
var array_2 = [1, , ["string 1", "string 2"]];
/* array_2[0][0] = 1 */
我需要解析JS阵列像它C#jagged array
或any other object
可以由函数通过索引来访问每个子串容易,,具有:
- 数成为字符串(
1
=>"1"
) -
null
成为""
(长度= 0的字符串)。
你能帮我怎么做吗?非常感谢你!
答
// using
using Newtonsoft.Json.Linq;
string JSarray_1 = @"[[""string 1"", 2013, ""string 2""], ""string 3"", [""string 4"", , ""string 5""]]";
JObject j = JObject.Parse("{\"j\":" + JSarray_1 + "}");
MessageBox.Show((string)j["j"][0][2]); // "string 2"
答
参见C#语言的文档:"Multidimensional Arrays (C#)"
string[,] items = new string[,] {{"string 1","string 2"},...};
答
string[][] items = new string[3][];
items [0] = new string[2];
items [1] = new string[1];
items [2] = new string[2];
items[0][0] = "string1";
items[0][1] = "string3";
items[1][0] = "string4";
items[2][0] = "string5";
items[2][1] = "string6";
OR
string[][] items = new string[][]
{
new string[] {"string1", "string3"},
new string[] {"string4"},
new string[] {"string5", "string6"}
};
答
如果您需要解析JavaScript数组到C#中的数组,可以序列的javascrip将数组转换为JSON,然后将JSON反序列化为C#数组。
此前,您需要进行一次转换:在JavaScript数组表示中将null替换为字符串。
然后,您可以让这样的事情:
var JSArrayString = @"{"array_1": [["string 1", 2013, "string 2"], "string 3", ["string 4", null, "string 5"]]}";
var CSharpDict = SomeJSONLibrary.Deserialize(JSString);
var CSharpArray = CSharpDict["array_1"];
var myItem = CSharpArray[0][2];
+0
对不起,你能解释得更清楚吗?从'JSArrayString'到'CSharpArray [0] [2]'是一个很长的距离。 – Sakura 2013-04-15 09:44:57
从技术上讲,有什么OP似乎也有一个锯齿状的阵列,而不是一个多维的阵列。 – 2013-04-10 05:57:42