C# 使用json.net返回数组数组,而不是对象数组
对于flot图表,我需要返回数组数组,而不是对象数组 我可以得到以下信息:C# 使用json.net返回数组数组,而不是对象数组,c#,arrays,json,json.net,C#,Arrays,Json,Json.net,对于flot图表,我需要返回数组数组,而不是对象数组 我可以得到以下信息: data = [{"2012-10": 4140},{"2012-11": 10815},{"2012-12": 10444}]; 但需要(更新以下固定行): 下面是正在解析来自另一个源的入站json的c#: public async Task<ActionResult> Chart(string custid) { //Ge
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();
}
我不知道如何将作业对象转换为数组。我尝试过其他方法,包括使用字典和列表。任何帮助或替代解决方案都会有所帮助。使用VS2013、mvc 5和EF 6。尝试以下方法:
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]
不是有效的JSON。您说需要的JSON无效——数组中不能有冒号分隔值。您的意思是[[“2012-10”,4140],“2012-11”,10815],“2012-12”,10444]
?是的,我的意思是您用逗号而不是冒号表示的。我只是抄错了,效果很好。非常感谢你!没问题;很乐意帮忙。
[
{
"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,
}
]
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]]