簡體   English   中英

如何將JavaScript多維數組解析為C#數組?

[英]How to parser JavaScript multidimensional array to c# array?

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 arrayany other object可以通過index輕松按功能訪問每個子字符串的any other object

  • 數字變成字符串( 1 => "1"
  • null變為"" (長度= 0的字符串)。

你能幫我怎么做嗎? 非常感謝你!

使用Json.NET

// 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#語言文檔: “多維數組(C#)”

string[,] items = new  string[,] {{"string 1","string 2"},...};

我認為TuyenTk在尋找什么,而emigue試圖描述的是使用一個執行“魔術”(= parsing)的庫

我建議使用JSON.Net,因為它是我一直使用的JSON-Net ,但我想其中有很多。

鏈接的頁面還包含一些有關如何使用它的簡單示例。

關於將null替換為emptystring:

var myValue = origValue ?? String.Empty;

如果origValue為null,則myValue將設置為“”,否則表達式的計算結果為origValue;

有關“ ??”或稱為“ null-coalescing運算符”的更多信息,請參閱文檔

鋸齒狀陣列

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";

要么

string[][] items = new string[][] 
{
    new string[] {"string1", "string3"},
    new string[] {"string4"},
    new string[] {"string5", "string6"}
};

如果需要將javascript數組解析為c#數組,則可以將Javascript數組序列化為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];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM