/ / Cómo convertir o escribir esta matriz de Javascript en C # - c #, javascript, json, list, arraylist

Cómo convertir o escribir esta matriz Javascript en C # - c #, javascript, json, list, arraylist

Quiero crear esta matriz en C # y enviarla a través de Json a JavaScript. ¿Cómo podría escribir esto en C #?

Esta es una matriz en Javascript;

var aa =  [{
name: "D1",
data: [
[Date.UTC(2010, 0, 12, 12, 10, 10), 1],
[Date.UTC(2010, 0, 13, 18, 01, 04), 1],
[Date.UTC(2010, 0, 14, 14, 11, 44), 0],
[Date.UTC(2010, 0, 15, 14, 11, 44), 1],
[Date.UTC(2010, 0, 16, 14, 18, 44), 1],
[Date.UTC(2010, 0, 17, 15, 11, 44), 0],
[Date.UTC(2010, 0, 18, 16, 15, 44), 1]
]
}, {
name: "D2",
data: [
[Date.UTC(2010, 0, 12), 1],
[Date.UTC(2010, 0, 13), 0],
[Date.UTC(2010, 0, 14), 0],
[Date.UTC(2010, 0, 15), 0],
[Date.UTC(2010, 0, 16), 1],
[Date.UTC(2010, 0, 16), 0],
[Date.UTC(2010, 0, 17), 0],
[Date.UTC(2010, 0, 18), 0]
]
}];

Traté de crear la misma matriz en C #:

public class chData
{
public DateTime Date { get; set; }
public int value { get; set; }
}

public class finallist
{
public string name { get; set;}
public List<chData> data { get; set;}
}

List<chData> D1data= new List<chData>
{
new chData {Date = new DateTime(2014, 1, 1, 00,00,01) , value = 2},
new chData {Date = new DateTime(2014, 1, 1, 00,00,05), value = 1},
new chData {Date = new DateTime(2014, 1, 1, 00,00,10), value = 1},
new chData {Date = new DateTime(2014, 1, 1, 00,00,15), value = 0},
new chData {Date = new DateTime(2014, 1, 1, 00,00,20), value = 1},
new chData {Date = new DateTime(2014, 1, 1, 00,00,25), value = 3},
new chData {Date = new DateTime(2014, 1, 1, 00,00,30), value = 2},
new chData {Date = new DateTime(2014, 1, 1, 00,00,35), value = 1},
new chData {Date = new DateTime(2014, 1, 1, 00,00,40), value = 1},
new chData {Date = new DateTime(2014, 1, 1, 00,00,45), value = 3},
new chData {Date = new DateTime(2014, 1, 1, 00,00,50), value = 1},
new chData {Date = new DateTime(2014, 1, 1, 00,01,15), value = 2}

};

List<finallist> Finaldata= new List<finallist>();
Finaldata.Add(new finallist { name = "D1", data = D1data});
return JsonConvert.SerializeObject(Finaldata);

Tengo algún problema con la estructura de la matriz en C #, ¡no funciona! Estoy seguro de que hice algo mal en el código C #.

este es mi código javascript

var aa =[];
$(document).ready(function () {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Default.aspx/getData",
data: "{}",
dataType: "json",
success: function (data) {
aa = eval((data.d).replace(//Date((.*?))//gi, "new Date($1)"));
},
error: function (result) {
alert("#Err");
}
});
});

Respuestas

3 para la respuesta № 1

Para obtener la estructura JSON que desea, debe cambiar su código para que cada elemento del data La propiedad es una matriz de objetos:

public class finallist {
public string name { get; set; }
public List<object[]> data { get; set; }
}

var D1data = new List<object[]>
{
new object[] { new DateTime(2014, 1, 1, 00,00,05),  1},
new object[] { new DateTime(2014, 1, 1, 00,00,10),  1},
new object[] { new DateTime(2014, 1, 1, 00,00,15),  0},
new object[] { new DateTime(2014, 1, 1, 00,00,20),  1},
new object[] { new DateTime(2014, 1, 1, 00,00,25),  3},
new object[] { new DateTime(2014, 1, 1, 00,00,30),  2},
new object[] { new DateTime(2014, 1, 1, 00,00,35),  1},
new object[] { new DateTime(2014, 1, 1, 00,00,40),  1},
new object[] { new DateTime(2014, 1, 1, 00,00,45),  3},
new object[] { new DateTime(2014, 1, 1, 00,00,50),  1},
new object[] { new DateTime(2014, 1, 1, 00,01,15),  2}

};

List<finallist> Finaldata = new List<finallist>();
Finaldata.Add(new finallist { name = "D1", data = D1data });
return  JsonConvert.SerializeObject(Finaldata, Formatting.Indented);

2 para la respuesta № 2

finallist.data debería ser una matriz de matrices:

var convertable = Finaldata.Select(f => new
{
f.name,
data = f.data.Select(d => new object[] { d.Date, d.value })
});

return JsonConvert.SerializeObject(convertable);

el resultado será equivalente a su json:

[{"name":"D1","data":[
["2014-01-01T00:00:01",2],
["2014-01-01T00:00:05",1], ...