Web API 中响应 JSON 的方括号

问题描述 投票:0回答:1

我使用 swagger 构建了一个 C# Web API。 它已在以下链接启动并运行:

https://www.vijilcomm.com/api/swagger/index.html. 

当我点击它时,例如像这样:

https://www.vijilcomm.com/api/VijilconOn?SerialNumber=12345&IPAddress=99.41.190.178

我得到的回复带有方括号。

    [{"serialNumber":"12345","ipAddress":"99.41.190.178","heartbeatWait":0,"alertSoundTime":0,"fullBatteryLevel":0,"middleBatteryLevel":0,"lowBatteryLevel":0,"criticalBatteryLevel":0,"tooHardMovement":0,"unitID":"","reportPhone":"","action":"Device not found"}]

我知道 JSON 中的方括号表示一个数组。 看起来它正在将其输出为数组或类似的东西。 这是响应中带有方括号的有效 JSON,还是我的代码有问题? 我的控制器有这个代码:

` [HttpGet(Name = "VijilconOn")]
 public IEnumerable<VijilconOn> Get(string SerialNumber, string IPAddress)
 {
     return Enumerable.Range(1, 1).Select(index => new VijilconOn
     {
         HeartbeatWait = (Functions.ReturnIntFieldValue("HeartbeatWait", "Devices", "[SerialNumber]='" + SerialNumber + "'")),
         AlertSoundTime = (Functions.ReturnIntFieldValue("AlertSoundTime", "Devices", "[SerialNumber]='" + SerialNumber + "'")),
         FullBatteryLevel = (Functions.ReturnIntFieldValue("FullBatteryLevel", "Devices", "[SerialNumber]='" + SerialNumber + "'")),
         MiddleBatteryLevel = (Functions.ReturnIntFieldValue("MiddleBatteryLevel", "Devices", "[SerialNumber]='" + SerialNumber + "'")),
         LowBatteryLevel = (Functions.ReturnIntFieldValue("LowBatteryLevel", "Devices", "[SerialNumber]='" + SerialNumber + "'")),
         CriticalBatteryLevel = (Functions.ReturnIntFieldValue("CriticalBatteryLevel", "Devices", "[SerialNumber]='" + SerialNumber + "'")),
         TooHardMovement = (Functions.ReturnIntFieldValue("TooHardMovement", "Devices", "[SerialNumber]='" + SerialNumber + "'")),
         UnitID = Functions.ReturnFieldValue("FriendlyName", "Devices", "[SerialNumber]='" + SerialNumber + "'").ToString(),
         ReportPhone = Functions.ReturnFieldValue("ReportPhone", "Devices", "[SerialNumber]='" + SerialNumber + "'").ToString(),
         IPAddress = Functions.RecordIPAddress(SerialNumber,IPAddress).ToString(),
         Action = Functions.CheckIn(SerialNumber, "ON").ToString(),
         SerialNumber = SerialNumber
     })
     .ToArray();
 }`

这对我来说似乎是有意义的,它被作为数组输出。 我的问题是 - 我在这里做错了什么,或者 JSON 以这种方式输出可以吗? 感谢您的帮助! 这是我的第一个 REST JSON Web API,所以我不确定我是否走在正确的轨道上,或者是否出了什么问题。 谢谢!

我尝试使用上面的代码和 swagger,并且按照描述输出了 JSON。 我不确定是否必须更改控制器功能的行为方式,或者我是否可以保持原样......

c# json rest webapi
1个回答
0
投票

如果你想返回单个对象,你不必使用IEnumerable而不是Enumerable.Range(1,1),你可以创建一个对象并返回它。

© www.soinside.com 2019 - 2024. All rights reserved.