2017-10-12 71 views
-1

我要讓JSON這樣Json.net序列C#

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

在牛頓文檔是這樣https://www.newtonsoft.com/json/help/html/SerializeObject.htm

我下面的文件,但只得到

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

和我嘗試像這樣插入我的循環中

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]; 
      } 

但它返回錯誤

+0

ü沒有將其添加到列表中。它應該是一個項目的集合。您需要序列化的產品集合。現在,您可能會序列化一個對象。您應該將產品包含在for循環中。然後將產品添加到產品列表中,然後序列化 –

+0

帖子中的示例輸出不代表有效的JSON,因此您需要使用各個塊的字符串連接手動構建它... C#示例非常奇怪,並且不會澄清問題。 .. –

+0

你會得到什麼錯誤?另外我注意到你沒有初始化金額和targetAmount。另一個問題是,您的產品變量會針對每個循環迭代繼續被覆蓋。 –

回答

1

我認爲這是你想要的。

 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); 
     } 

現在序列化產品