就是特別簡單的一個例子,但怎么也回傳不了JSON,
環境說明:.net 5.0 webapi
先來Startup檔案
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseDefaultFiles();
app.UseRouting();
app.UseStaticFiles();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
然后是控制器
[HttpGet]
public stringGet()
{
return xxx.ToJson(); 這里用的MongoDB轉換的資料,除錯看是正常的json結構沒問題
}
但運行F12發現出來的是文本 content-type是text/plan
然后將控制器加上[Produces("application/json")]特性,確實變了
但是收到的json是經過強制轉義后的json,也用不了
[HttpGet]
public JsonResult Get()
{
return new JsonResult (xxxObject); //xxxObject是原始的類物件
}
這樣試發現確實是json,不過是個空的JSON物件,只有一個大擴號,{}
然后再嘗試直接回傳物件
[HttpGet]
public xxxObjectGet()
{
return xxxObject; //xxxObject是原始的類物件
}
發現和JsonResult一樣,是空的json {}
求指點怎么用.net 5創建一個最簡單的get請求,能回傳json的,
謝謝 ,感覺這么一個簡單的功能都實作不了,有些郁悶。
在網上找的例子基本上都是幾年前的WEB Form,用不了
謝謝。
uj5u.com熱心網友回復:
試試
[httpGet]
public dynamic Test()
{
return new {id=1};
}
uj5u.com熱心網友回復:
public string Get()
{
return JsonConvert.SerializeObject(result);
}
//對方收到后,JsonConvert.DeserializeObject<object>(response);
//如果是js的話,JSON.parse(data)
//或者
public XXObject Get()
{
//……
return xxobject;
}
uj5u.com熱心網友回復:
不行,和用object是一樣的,得到的json是一個空的{}
uj5u.com熱心網友回復:
方法1,這樣肯定是可以的,但我想要沒轉義的標準json
方法2我文章有試過不行,
uj5u.com熱心網友回復:
這樣也試過了,
public HttpResponseMessage Get()
{
HttpResponseMessage httpReponseMessage = new HttpResponseMessage();
string jsonstr = "{id:1,name=123}";
httpReponseMessage.Content = new StringContent(jsonstr);
return httpReponseMessage;
}
也不行,回傳的是
{"version":{"major":1,"minor":1,"build":-1,"revision":-1,"majorRevision":-1,"minorRevision":-1},"content":{"headers":[{"key":"Content-Type","value":["text/plain; charset=utf-8"]}]},"statusCode":200,"reasonPhrase":"OK","headers":[],"trailingHeaders":[],"requestMessage":null,"isSuccessStatusCode":true}
uj5u.com熱心網友回復:
不行?怎么不行?為什么我又行你又不行,你不說說怎么不行 別人怎么知道怎么不行
試試
[httpGet]
public dynamic Test()
{
return new {id=1};
}
不行,和用object是一樣的,得到的json是一個空的{}
試試
[httpGet]
public dynamic Test()
{
return new {id=1};
}
不行,和用object是一樣的,得到的json是一個空的{}
api 的路由有設定嗎? 方法進去了嗎? 除錯一下 打個斷什么的。看看方法執行了沒有,明確告訴你 這方法是沒問題的,倒不如想想是其他問題吧,再不擠 就看看 官方模板的api 實作,新建一個專案帶webapi 的,里面有個例子可以供你參考
uj5u.com熱心網友回復:
我覺得去官網查比在這問要好些。畢竟用3.1的多,哈哈。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/262732.html
標籤:ASP.NET
上一篇:C# Socket通訊問題
下一篇:請問是哪里出了問題?
