我正在加速使用MVC 4的Web API,我对默认格式有点困惑.我希望API数据是JSON.但是,它以XML格式返回.根据MVC 4入门视频http://www.asp.net/web-api/videos/getting-started/your-first-web-api,默认情况下它应该是JSON.但是当我创建一个新的Web Api项目并运行该示例时,我得到了这个:
<ArrayOfstring><string>value1</string><string>value2</string></ArrayOfstring>
Run Code Online (Sandbox Code Playgroud)
我一直在试图用JSON试图获得这个,但显然有很多关于此的错误信息.如:
GlobalConfiguration.Configuration.Formatters.Insert(0, new JsonNetFormatter(serializerSettings));
它应该做的伎俩.但我收集了这个折旧,因为没有一个例子正在运作.我可以做些什么,最好是简单的,默认输出JSON格式的数据?
我正在使用dot net framework 4.5编写的用C#编写的restful API.当前它的工作正常......我在JSON转换后返回结果..我期待一个纯粹的JSON结果......我是我目前没有...我期待简单的解决方案在根元素处省略字符串XMLNS,我返回JSON ...结果我得到:
我的代码:
public String GetAllSalesInvoices(string customer_id, string Startdate, string Enddate)
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string query = "SELECT * FROM sales_invoice WHERE customer_id =" + customer_id + " AND invoice_date BETWEEN '" + Startdate + "' AND '" + Enddate + "'";
DataSet ds = conObj.execQuery(query);
DataTable dt = new DataTable();
dt = ds.Tables[0];
List<sales_invoice> result = new List<sales_invoice>();
foreach (DataRow dr in dt.Rows)
{
sales_invoice inv = new sales_invoice()
{
Invoice_id = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试向ASP.NET Web API发送get请求并获取XML以在我的Android应用程序中解析它.当我通过Web浏览器尝试链接时它返回XML,但是当Android应用程序发送请求时它返回JSON.如何以仅发送XML的方式修复它?谢谢
我有以下内容:
var data = new List<DataModel>();
Run Code Online (Sandbox Code Playgroud)
DataModel的位置如下:
public class DataModel {
public DateTime Date { get; set; }
public Int32 Users { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如何将此List转换为JSON格式并在WebAPI 2.0操作中返回它?
谢谢你,米格尔
我们使用WebAPI模仿遗留系统的处理,因此我们希望XmlFormatter的默认响应格式化程序而不是JsonFormatter.原因是某些对服务的现有调用不提供Accept:HTTP头字段.
我可以通过从Formatters集合中删除JsonFormatter,然后重新添加它,强制它在链的末尾来实现这一点.
然后,这将导致使用XmlFormatter的默认格式响应.虽然它有效但它感觉不正确,虽然我将Json移动到集合的后面,但不能保证XmlFormatter位于集合的前面.
创意/想法?
谢谢
我正在将 .NET Framework 应用程序移植到 .NET Core。我已经通过 NuGet System.ServiceModel.Web 添加,但它似乎不起作用。我需要“WebGet”的替代方案:
[ServiceContract]
public interface IChannelsApi
{
[WebGet(UriTemplate = "", ResponseFormat = WebMessageFormat.Json), OperationContract]
List<Channel> GetChannels();
[WebGet(UriTemplate = "{name}", ResponseFormat = WebMessageFormat.Json), OperationContract]
Channel GetChannel(string name);
}
Run Code Online (Sandbox Code Playgroud)
我必须做什么?
我想以以下格式返回(在网络浏览器中显示)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"
}
]
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我在 c# 和实体框架 5.0 中使用 asp.net web API (MVC),ADO.Net 实体数据模型作为我的模型。
我正在使用存储过程从 sql server 数据库获取数据:
目前我在我的控制器中使用下面的代码
namespace RainfallService.Controllers
{
public class DistAVGController : ApiController …
Run Code Online (Sandbox Code Playgroud) 我有一个控制器动作,它返回一个JSON数据.可以通过getJSON方法轻松访问它.但我希望通过Web API检索JSON数据.
我的控制器代码是
public ActionResult GetProfile(string profileName)
{
var profileDataService = new BokingEngine.MasterDataService.GetProfileDataService();
var request = new ProfileSearchCriteria { Name = profileName };
var profileDetails = profileDataService.GetList(request);
return Json(profileDetails, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)