我正在创建一个WebApi应用程序,并试图让我的控制器返回一个数组内的Json对象结果。
我希望我的回复格式如下:
[
{
"stampCode": "666",
"email": "666_doctor@gmail.com",
"phone": "+370 640 000000",
"healthCareProvider": "Jonavos poliklinika"
}
]
但是我的代码处于当前状态,而是返回以下内容:
{
"stampCode": "666",
"email": "666_doctor@gmail.com",
"phone": "+370 640 000000",
"healthCareProvider": "Jonavos poliklinika"
}
当我尝试自己包含数组时,我的输出会丢失JSON对象,因此看起来像这样:
[
"stampCode: 666",
"email: 666_doctor@gmail.com",
"phone: +370 640 000000",
"healthCareProvider: Jonavos poliklinika"
]
如何修复代码以获得所需的输出?我是编程新手,真的坚持这个。
这是我的代码:
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
});
}
}
}
}
答案 0 :(得分:4)
是的,你只是在创建一个新的匿名类型。尽管如此,将它包装在一个数组中很容易:
import resource
def report():
maxrss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
peak, current = get_proc_status(('VmHWM', 'VmRSS'))
print(current, peak, maxrss)
report()
s = ' ' * 2 ** 28 # 256MiB
report()
s = None
report()
当你想找一个医生时,你不想清楚为什么你想要返回一个阵列。如果我是API消费者,我认为这很令人困惑,我认为......
答案 1 :(得分:0)
您正在创建JSON Object
而不是JSON Array
,因此您获得的结果是正确的。
如果你想要返回一个JSON数组,你需要返回这样的东西:
new[]{
//obj1, obj2,obj3
}
结果将是JSON Array
你的对象