Kuk*_*uke 2 c# asp.net arrays json visual-studio
我正在制作一个 WebApi 应用程序,并尝试让我的控制器返回数组内的 Json 对象结果。
我希望我的回复格式如下:
[
{
"stampCode": "666",
"email": "666_doctor@gmail.com",
"phone": "+370 640 000000",
"healthCareProvider": "Jonavos poliklinika"
}
]
Run Code Online (Sandbox Code Playgroud)
但我的代码在当前状态下返回以下内容:
{
"stampCode": "666",
"email": "666_doctor@gmail.com",
"phone": "+370 640 000000",
"healthCareProvider": "Jonavos poliklinika"
}
Run Code Online (Sandbox Code Playgroud)
当我尝试自己包含一个数组时,我的输出丢失了 JSON 对象,因此看起来像这样:
[
"stampCode: 666",
"email: 666_doctor@gmail.com",
"phone: +370 640 000000",
"healthCareProvider: Jonavos poliklinika"
]
Run Code Online (Sandbox Code Playgroud)
如何修复我的代码以获得所需的输出?我是编程新手,并且真的很坚持这一点。
这是我的代码:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Claims;
using System.Web.Http;
using System.Web.Http.Results;
namespace DoctorWebService.Controllers
{
public class DataController : ApiController
{
[Authorize]
[HttpGet]
[Route("api/doctors")]
public JsonResult<object> Get(string doctorCode)
{
if (doctorCode == "666")
{
var identity = (ClaimsIdentity)User.Identity;
return Json<object>(new
{
stampCode = "666",
email = "666_doctor@gmail.com",
phone = "+370 640 000000",
healthCareProvider = "Jonavos poliklinika"
});
}
else
{
return Json<object>(new
{
notFound = 0
});
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
是的,您只是创建一个新的匿名类型。不过,将其包装在数组中很容易:
return Json(new[] { new
{
stampCode = "666",
email = "666_doctor@gmail.com",
phone = "+370 640 000000",
healthCareProvider = "Jonavos poliklinika"
}});
Run Code Online (Sandbox Code Playgroud)
但是,当您试图寻找一位医生时,尚不清楚为什么您想要返回一个数组。如果我是 API 消费者,我会发现这非常令人困惑,我想......