簡體   English   中英

在javascript中將html表轉換為多維數組

[英]convert html table to multidimensional array in javascript

我正在創建highcharts(堆積列)ref http://www.highcharts.com/demo/column-stacked/gray

這要求數據以類似以下格式顯示

series: [{
    name: 'John',
    data: [5, 3, 4, 7, 2]
}, {
    name: 'Jane',
    data: [2, 2, 3, 2, 1]
}, {
    name: 'Joe',
    data: [3, 4, 4, 2, 5]
}]

但是我在HTML表中也有

John    Jane    Joe
5          2    3
3          2    4
4          3    4
7          2    2
2          1    5

通過在后面使用C#代碼,我能夠將HTML表轉換為字符串

string sHTMLTable = "John,5,3,4,7,2|Jane,2,2,3,2,1|Joe,3,4,4,2,5";

如何轉換HighCharts所需數組格式的相同字符串?

|上分割字符串 字符,然后在結果Array上使用.map()來迭代子字符串。

.map()回調內部,分割,字符上的子字符串,並返回一個對象,該對象的第一項為name屬性,其余為data屬性。

var res = sHTMLTable.split("|").map(function(s) {
    var arr = s.split(",");
    return {name:arr.shift(), data:arr.map(Number)};
});

請注意,設置data時,我再次使用.map() 這是將數字字符串轉換為實際數字。

假設您可以將sHTMLTable變量從C#獲取到呈現頁面的javascript(通過隱藏字段或response.write在<script>標記內),這應該可以工作:

var sHTMLTable = "John,5,3,4,7,2|Jane,2,2,3,2,1|Joe,3,4,4,2,5";
var aPersonData = sHTMLTable.split('|');
var series = [];

for (var i = 0; i < aPersonData.length; i++) {
    var data = aPersonData[i].split(',');
    var obj = {
        name: data.shift(),
        data: data
    };
    series.push(obj);
};

小提琴的例子

薩加爾

請指定您使用的語言。

假設您正在使用C#

public class Employee
{
    public string Name { get; set; }
   public List<String> Data {get;set} 
}

Adding some instances of them to a List:

List<String> abc=new List<String>()
abc.Add("1");
abc.Add("2");
abc.Add("3");

Employee oEmployee1 = 
       new Employee{Name="Joe",data=abc};

Employee oEmployee2 = 
      new Employee { Name = "Jane",data=abc};
Employee oEmployee3 = 
        new Employee { Name = "Joe", data=abc};

List<Employee> oList = new List<Employee>() 
{ oEmployee1, oEmployee2, oEmployee3 };


System.Web.Script.Serialization.JavaScriptSerializer oSerializer = 
         new System.Web.Script.Serialization.JavaScriptSerializer();
string sJSON = oSerializer.Serialize(oList);

這將生成JSON格式的數據,並且您不需要編寫任何代碼即可將數據轉換為JSON。

暫無
暫無

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

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