[asp.net]c# 数组形式返回 json 的结果

发布时间: 2017/1/23 22:05:33
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我也做一个 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
                });
            }
        }
    }
}

解决方法 1:

嗯,的你只要创建新的匿名类型。它是简单包装,虽然在一个数组中︰

return Json(new[] { new
{
    stampCode = "666",
    email = "666_doctor@gmail.com",
    phone = "+370 640 000000",
    healthCareProvider = "Jonavos poliklinika"
}});

它是不清楚为什么你会想要返回一个数组,当你试图找到一个单一的医生。API 消费者的要是,我会发现非常令人困惑的是,我认为......

赞助商