[英]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.