在C#中将json对象从一种格式转换为另一种格式

时间:2016-11-08 14:39:55

标签: c# arrays json

我按以下格式列出了5个产品和12个月的价格

 dynamic product = new JObject();
 product.ProductName = "Elbow Grease";
 product.Price = 4.90;
 product.year = 2016;
 product.month = 01;

 product.ProductName = "Jeans";
 product.Price = 4.10;
 product.year = 2016;
 product.month = 01;

 product.ProductName = "Jeans";
 product.Price = 2.90;
 product.year = 2016;
 product.month = 02;

现在我需要将此json转换为另一种格式,如下所示发送到我的视图

[
    {
        "year": 2016,
        "month": 01,
        "Elbow Grease": 4.90,
        "Jeans": 4.10
    },
    {
        "year": "2016",
        "month":"02",
        "Elbow Grease": 0, //since not available
        "Jeans": 2.90
    }]

1 个答案:

答案 0 :(得分:0)

对于MVC。

您的控制器具有以下方法:

public JsonResult Products()
{
   // ... your code
   return Json(new { products = product }, JsonRequestBehavior.AllowGet);
}

对于webservice,将JSON值返回给AJAX调用

返回方法略有修改。

 dynamic products = new DynamicJsonObject(new Dictionary<string, object>());
 // ... your code to fill up dictionary
 return Json.Encode(products);

P.S。而不是JObject我会使用ExpandoObject

p.p.s。但是,如果您仍然想使用JObject,请查看此帖子Stackoverflow