在我的代码中,我试图接收一个包含JSON主体的API,JSON主体包含数据,我设计了一个DataInfo Model类,并使用[FromBody]函数来转换数据。
我的问题是,被提取的数据(我已经将其格式化为int和double)被提取为一系列0
我的数据信息模型类:
public class DataInfo
{
[JsonProperty("ID")]
public int JId { get; set; }
[JsonProperty("Temp")]
public double JTemperature { get; set; }
[JsonProperty("Humidity")]
public double JHumidity { get; set; }
[JsonProperty("WindSpeed")]
public double JWindSpd { get; set; }
[JsonProperty("SoilMoisture")]
public double JSM { get; set; }
}
}我的API控制器:[HttpPatch(“更新”)]
public async Task<ActionResult<Device>> Update([FromBody] DataInfo data)
{
var dev = await _dbContext.Device.Where(x => x.Id == data.JId).FirstOrDefaultAsync();
if (dev == null)
{
return BadRequest("no device found");
}
dev.Humidity = data.JHumidity;
dev.Temp = data.JTemperature;
dev.WindSpeed = data.JWindSpd;
dev.SoilMoisture = data.JSM;
dev.DateTime = DateTime.Now;
_dbContext.SaveChanges();
return Ok(dev);
}
我的JSON正文:{
"ID":"1",
"Temp":"37",
"Humidity":"42",
"WindSpeed":"12",
"SoilMoisture":"14"
}我也使用了这个JSON主体,得到了相同的结果:
{【数据】:{
"ID":"1",
"Temp":"37",
"Humidity":"42",
"WindSpeed":"12",
"SoilMoisture":"14"
}
}
当我在postman中运行API调用时,我收到一个400错误,其中包含与无效设备ID相关的文本,当我让它发送设备ID和类中的其他数据点时,所有数据点都返回为0。
API调用将转到正确的控制器,但是JSON数据似乎只以0的形式存在,即使我在模型类中使用JsonPropertyName或JsonProperty赋值对其进行赋值。
1条答案
按热度按时间pdtvr36n1#
我发现问题出在我使用的输入上。我包括了NewtonSoft,这与系统相冲突。