2017-01-25 7 views
0

ich gespeicherte Prozedur ausführen und SqlDataReader-Reader verwenden, es zu lesen, dann habe ich ein Objekt [] Ergebnis, dass alle Daten in den Daten sehen wie folgt schreibt:.in einem Objekt C# für jedes Element Namen hinzufügen

result: { {[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]}, ... } 

Ein reales Beispiel wäre wie {{1,{1/18/2017},20},{2,{1/19/2017},21},{3,{1/20/2017},22}}

Ich möchte Elementname für jedes Element in jedem untergeordneten Objekt hinzufügen und Json zu meinem Javascript zurückgeben. So erwartetes Ergebnis wäre:

result = {{"ID":1, "Date":{1/18/2017},"value":20}, 
      {"ID":2,"Date":{1/19/2017},"value":21}, 
      {"ID":3,"Date":{1/20/2017},"value":22}} 

Wer kennt den richtigen Weg, es zu tun? Mit LinqtoObject oder Lambda oder etwas anderes?

Antwort

0

Hier ist, was ich vorschlagen würde. Erstellen Sie eine Struktur:

struct MyThing 
{ 
    public int ID { get; set; } 
    public DateTime Date { get; set; } 
    public int Value { get; set; } 
} 

Dann initialisieren Ihre Liste wie folgt aus:

var input = new List<MyThing>(new[] 
{ 
    new MyThing { ID = 1, Date = DateTime.Parse("1/18/2017"), Value = 20 }, 
    new MyThing { ID = 2, Date = DateTime.Parse("1/19/2017"), Value = 21 }, 
    new MyThing { ID = 3, Date = DateTime.Parse("1/20/2017"), Value = 22 } 
}); 

.NET ist eine objektorientierte Sprache, so nutzen, dass, dh schaffen Klassen oder, in diesem Fall, Strukturen, um gemeinsame Informationssätze zu halten.

Außerdem ist es viel einfacher, mit Listen als Arrays zu arbeiten.

Wie zu JSON Konvertierung, ich bin kein Experte, aber hier ist, was ich warf zusammen für den obigen Code:

var serializer = new JavaScriptSerializer(); 
string jsonText = serializer.Serialize(input); 

Hinweis, benötigen Sie einen Verweis auf System.Web.Extensions hinzufügen und fügen Sie ein using Direktive:

using System.Web.Script.Serialization; 
+0

Es klingt wie OP nach einer Möglichkeit fragt, diesen Prozess zu automatisieren, anstatt die Objekte manuell neu zu "erfinden". – Michael

Verwandte Themen