首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用json.net返回数组而不是对象数组

用json.net返回数组而不是对象数组
EN

Stack Overflow用户
提问于 2013-12-13 00:37:31
回答 1查看 2.2K关注 0票数 1

我需要返回一个数组,而不是一个对象数组的标记图。

我可以得到以下信息:

代码语言:javascript
复制
data = [{"2012-10": 4140},{"2012-11": 10815},{"2012-12": 10444}];

但需要(更新固定的下一行):

代码语言:javascript
复制
data = [["2012-10", 4140],["2012-11", 10815],["2012-12", 10444]];

下面是从另一个源解析入站json的c#:

代码语言:javascript
复制
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:

代码语言:javascript
复制
[
  {
      "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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-13 00:59:51

试试这个:

代码语言:javascript
复制
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);
    }
}

输出:

代码语言:javascript
复制
[["2012-10",4140],["2012-11",10815],["2012-12",10444]]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20557112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档