【问题标题】:JSON deserialization error on integer types - C#整数类型的 JSON 反序列化错误 - C#
【发布时间】:2017-06-07 07:57:59
【问题描述】:

我第一次在 WebAPI 中实现来自 Angular 客户端的 POST,该客户端接收一个 JObject,然后我将其反序列化为我感兴趣的对象。 但是当我检查生成的对象时,我发现所有字段都被适当地填充了,除了那些应该是整数的字段。

这是我的 POST 方法的一部分

 // POST: api/PresupuestosApi
    [ResponseType(typeof(Presupuesto))]
    public async Task<IHttpActionResult> PostPresupuesto([FromBody]JObject presupuesto)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }
        try
        {
            Presupuesto p = presupuesto.ToObject<Presupuesto>();

我的 JSON 如下所示:

{  
"sTitulo": "Agentasa",  
"cSolicitante": 
{
    "eRol": "SOLICITANTE",
    "sEmail": "bla@sdlfkjsf.com",
    "iTelefono": "122299935",
    "sNombre": "Clau",
    "sApellido": "Clau"  
},  
"cTrabajo": 
{
    "SNombreTrabajo": "Agenda"  

},  
"sMaterial": "sadsa",  
"sDimAbierto": "12x22",  
"sDimCerrado": "12x155",  
"sImpresion": "Una cara",  
"fGramaje": 12.5,  
"iCantidad": 122,  
 }

我的Presupuesto 课程是这样的:

public class Presupuesto
{
    private int iIdPresupuesto;
    private string sTitulo;
    private Solicitante cSolicitante;
    private Trabajo cTrabajo;
    private string sMaterial;
    private string sDimAbierto;
    private string sDimCerrado;
    private float fGramaje;
    private string sImpresion;
    private int iCantidad;
  }

所以,在调试时我看到了这个:

我不知道为什么它可以正确解析除 int 之外的所有其他类型。 关于这个主题有什么建议吗?我需要强调我以前从未使用过 WebAPI。

【问题讨论】:

  • 您的屏幕截图中只有一个 int,它的值似乎与 JSON 中的值相同。究竟是什么问题?
  • 您是否在客户端设置任何内容类型标头,特别是在您的 Angular 应用程序的 http.post 方法上?为什么不直接将发布的值绑定到 Presupuesto 对象中?
  • @moreON 这里唯一的 int 是 iCantidad,它被设置为 0x0000007a(这是什么?一个内存位置?)。不应该是 122,就像我在 JSON 中提交的 int 一样吗?
  • 0x0000007a 十六进制 = 122 十二月
  • @emmaielle 检查您的调试器设置。 stackoverflow.com/questions/3354453/…

标签: c# json asp.net-web-api deserialization


【解决方案1】:

0x0000007a in Hex = 122 in Dec. 检查您的调试器设置。调试器似乎设置为以十六进制显示整数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多