2013-12-13 90 views
1

我需要返回一個數組的數組而不是一個用於浮動圖表的對象數組。返回數組的數組,而不是使用json.net的對象數組

我可以得到如下:

data = [{"2012-10": 4140},{"2012-11": 10815},{"2012-12": 10444}]; 

但需要(更新修復以下線):

data = [["2012-10", 4140],["2012-11", 10815],["2012-12", 10444]]; 

這裏是從另一個來源解析入站JSON的C#:

public async Task<ActionResult> Chart(string custid) 
    { 
     //Get the financial results from DRT 
     var response = await DominoJSON.getJSON(custid, "drtHistory", "DRT"); 

     JArray UOVol = new JArray(); 

     var array = JArray.Parse(response); 
     foreach (var token in array) 
     { 
      JObject o = JObject.Parse(token.ToString()); 

      int uovol = Convert.ToInt32(o["UOVol"]); 
      string uodate = o.SelectToken("DATE").ToString(); 
      JObject UOItem = new JObject(new JProperty(uodate, uovol)); 
      UOVol.Add(UOItem); 

     } 

     string resultUO = UOVol.ToString(); 

     ViewBag.UOData = resultUO; 

     return View(); 
    } 

並解析入站json:

[ 
    { 
     "DATE":"2012-10", 
     "UOVol":4140, 
     "FIRev":180, 
     "AFRev":692.75, 
     "ABRev":2900, 
     "OWRev":3791.25, 
    }, 
    { 

     "DATE":"2012-11", 
     "UOVol":10815, 
     "FIRev":60, 
     "AFRev":170, 
     "ABRev":0, 
     "OWRev":3037.5, 
    }, 
    { 

     "DATE":"2012-12", 
     "UOVol":10444, 
     "FIRev":40, 
     "AFRev":514.25, 
     "ABRev":1450, 
     "OWRev":7500, 
    } 
] 

我想不出如何將JObjects轉換爲數組。我已經嘗試過使用其他方法,包括使用字典和列表。任何幫助或替代解決方案都會有所幫助。使用VS2013,MVC 5和EF 6.

+0

'[ 「2012-10」:4140]'無效JSON。 – Rawling

+0

你說你需要的JSON是無效的 - 不能用冒號分隔數組中的值。你是不是指'[[「2012-10」,4140],[「2012-11」,10815],[「2012-12」,10444]]? –

+0

是的我的意思是你用逗號代替冒號。我剛剛複製不正確。 – user2557714

回答

3

嘗試這種情況:

class Program 
{ 
    static void Main(string[] args) 
    { 
     string jsonIn = @" 
     [ 
      { 
       ""DATE"": ""2012-10"", 
       ""UOVol"": 4140, 
       ""FIRev"": 180, 
       ""AFRev"": 692.75, 
       ""ABRev"": 2900, 
       ""OWRev"": 3791.25 
      }, 
      { 
       ""DATE"": ""2012-11"", 
       ""UOVol"": 10815, 
       ""FIRev"": 60, 
       ""AFRev"": 170, 
       ""ABRev"": 0, 
       ""OWRev"": 3037.5 
      }, 
      { 
       ""DATE"": ""2012-12"", 
       ""UOVol"": 10444, 
       ""FIRev"": 40, 
       ""AFRev"": 514.25, 
       ""ABRev"": 1450, 
       ""OWRev"": 7500 
      } 
     ]"; 

     JArray arrayIn = JArray.Parse(jsonIn); 
     JArray arrayOut = new JArray(); 
     foreach (JObject jo in arrayIn.Children<JObject>()) 
     { 
      JArray ja = new JArray(); 
      ja.Add(jo["DATE"]); 
      ja.Add(jo["UOVol"]); 
      arrayOut.Add(ja); 
     } 

     string jsonOut = arrayOut.ToString(Formatting.None); 
     Console.WriteLine(jsonOut); 
    } 
} 

輸出:

[["2012-10",4140],["2012-11",10815],["2012-12",10444]] 
+0

完美地工作。非常感謝! – user2557714

+0

沒問題;樂意效勞。 –

相關問題