2017-10-12 1 views
-1

i Dokumentation json wie dieseJson.net serialisiert C#

{ 
     'month': '201701', 
     'value': '170', 
     'target': '100' 
    }, 
    { 
     'month': '201702', 
     'value': '200', 
     'target': '200' 
    }, 
    { 
     'month': '201703', 
     'value': '210', 
     'target': '400' 
    } 

in den newtons machen wollen wie dieses ich die Dokumentation folgende https://www.newtonsoft.com/json/help/html/SerializeObject.htm

ist aber nur

{ 
    'month': '201701', 
    'value': '170', 
    'target': '100' 
} 

und ich bekomme versuchen, in meine Schleife wie folgt einzufügen

SellTrhu product = new SellTrhu(); 
      for (int i = 1; i <= 8; i++) 
      { 
       double[] month = new double[8]; 
       month[i] = 201700 + i; 
       amount[i] = _context.VGetSellThruSales.Where(y => y.Month == month[i]).Select(x => x.NetAmount ?? 0).Sum(); 
       targetAmount[i] = _context.DashboardSellThruSummary.Where(y => y.Month == month[i]).Select(x => x.Ach ?? 0).Sum(); 

       product.month = month[i]; 
       product.value = amount[i]; 
       product.target = targetAmount[i]; 
      } 

aber es gibt Fehler zurück

+0

Hat u es zu einer Liste hinzuzufügen. Es sollte eine Sammlung von Gegenständen sein. Sammlung von Produkten, die Sie serialisieren müssen. Jetzt könnten Sie ein einzelnes Objekt serialisieren. Sie sollten das Produkt innerhalb der Schleife einfügen. Dann fügen Sie das Produkt zu einer Liste von Produkten hinzu und dann Serialisierung –

+0

Beispielausgabe in der Post stellt nicht gültig JSON dar, also müssen Sie es manuell mit Zeichenkettenverkettung der einzelnen Blöcke ... C# Probe ist sehr merkwürdig und stellt Frage nicht klar. .. –

+0

Welchen Fehler bekommen Sie? Auch habe ich bemerkt, dass Sie nicht Betrag und targetAmount initialisieren. Ein weiteres Problem ist, dass Ihre Produktvariable für jede Schleifeniteration überschrieben wird. –

Antwort

1

Ich denke, das ist, was Sie wollen.

 List<SellTrhu> products = new List<SellTrhu>(); 
     for (int i = 1; i <= 8; i++) 
     { 
      SellTrhu product = new SellTrhu(); 
      double[] month = new double[8]; 
      month[i] = 201700 + i; 
      amount[i] = _context.VGetSellThruSales.Where(y => y.Month == month[i]).Select(x => x.NetAmount ?? 0).Sum(); 
      targetAmount[i] = _context.DashboardSellThruSummary.Where(y => y.Month == month[i]).Select(x => x.Ach ?? 0).Sum(); 

      product.month = month[i]; 
      product.value = amount[i]; 
      product.target = targetAmount[i]; 
      products.Add(product); 
     } 

Jetzt Produkte serialisiert

Verwandte Themen