【发布时间】:2018-06-01 18:18:17
【问题描述】:
我想以以下格式返回(在网络浏览器中显示)json数组。
{
"RainfallAreaAVG": [
{
"AreaBbsID": "18",
"DistCount": "1",
"SubDistCount": "2",
"Amount": "14",
"Hail": "14",
"ArealDetails": [
{
"DistBbsID": "101",
"SubDistCount": "2",
"Amount": "14",
"Hail": "14",
"SubDistCount": "2",
"DistDetails": [
{
"SubDistBbsID": "101",
"Amount": "14",
"Hail": "2",
"Date": "2011-06-13"
},
{
"SubDistBbsID": "102",
"Amount": "10",
"Hail": "0",
"Date": "2011-06-13"
}
]
}
]
}
]
}
我在 c# 和 Entity Framework 5.0 中使用 asp.net Web API (MVC),ADO.Net 实体数据模型作为我的模型。
我正在使用存储过程从 sql server DB 中获取数据:
目前我在控制器中使用以下代码
namespace RainfallService.Controllers
{
public class DistAVGController : ApiController
{
[HttpGet]
public List<SP_GetRainfallByDistDateAVG_Result> GetRainfall(string distBbsID, string entryDate)
{
using (var db = new Farmer_WebEntities())
{
var rainfalls = db.SP_GetRainfallByDistDateAVG(distBbsID, entryDate).ToList();
return rainfalls;
}
}
[HttpGet]
public List<SP_GetRainfallByDistDateAVGDetails_Result> GetRainfall(string distBbsID, string entryDate,string type)
{
using (var db = new Farmer_WebEntities())
{
var rainfalls = db.SP_GetRainfallByDistDateAVGDetails(distBbsID, entryDate).ToList();
return rainfalls;
}
}
}
}
我的输出就像我不想要的那样。
我正在使用的模型类
namespace RainfallService
{
using System;
public partial class SP_GetRainfallByDistDateAVG_Result
{
public string AreaBbsId { get; set; }
public string DistBbsID { get; set; }
public Nullable<int> SubDistCount { get; set; }
public Nullable<decimal> Amount { get; set; }
public Nullable<int> Hail { get; set; }
}
}
还有
namespace RainfallService
{
using System;
public partial class SP_GetRainfallByDistDateAVGDetails_Result
{
public string AreaBbsId { get; set; }
public string DistBbsID { get; set; }
public string SubDistBbsId { get; set; }
public Nullable<decimal> Amount { get; set; }
public Nullable<int> Hail { get; set; }
}
}
我的 WebApiConfig.cs 如下
namespace RainfallService
{
public class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Remove(config.Formatters.XmlFormatter);
//config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
//var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
//jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
}
}
谁能帮帮我???
【问题讨论】:
-
您好;请编辑您的问题并将代码、数据和错误发布为具有适当格式的文本。
-
@Stefan 在我看来,他需要一个新类来存放他的查询结果,在他的数据库示例中,看起来他有 3 个 procs 正在执行并作为数据集返回。
-
漂亮打印的可能副本:stackoverflow.com/questions/9847564/…
-
所以你希望它返回你的 Json 美化?使用 WebApiConfig 中的 Formatting = Formatting.Indented SerializerSetting 注册您的 JsonMediaTypeFormatter。
标签: c# arrays json asp.net-web-api