Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

392
Vistas
JSON truncado cuando se pasa de la página web al servicio ASP.NET Web API

Tengo un servicio de API web ASP.NET que acepta datos JSON. Funciona perfectamente para todos nuestros tipos de datos JSON excepto uno. Los usuarios pueden enviar los resultados de la inspección desde sus dispositivos móviles. Los resultados de la inspección los recibe un servicio API web de ASP.NET como JSON.

Tengo pruebas unitarias escritas en C# que pueden enviar datos JSON de inspección sin ningún problema. Pero cada vez que envío los datos desde una página web, los datos JSON que se envían parecen truncarse.

Esto es lo que se envía.

 {"Formname":"inspection","Formdata":{"UserId":1011357,"InspectionId":40013,"VehicleReg":"AA123ABC","Results":[{"QuestionId":100053,"OptionId":30192,"OptionResponse":"fantastic"}]},"Profile":{"EmailAddress":"myname@mycompany.com","OscarId":"1011369"}};

Esto es lo que se recibe.

 {"Formname":"inspection","Formdata":{"UserId":1011357,"InspectionId":40013,"VehicleReg":"AA123ABC","Results":[{"QuestionId":100053,"OptionId":30192,"OptionResponse":"fantastic"

Se está truncando en una longitud de 254.

Aquí está el AJAX que crea la solicitud.

 var url = "http://mywebservice/api/routingtasks?formname=inspection"; $.ajax({ type: "POST", url: url, contentType: "application/json", headers: { "Authorization" : "TESTUSER " + signedToken}, data: JSON.stringify(formdata), success: function(data){ alert("Task successfully processed."); }, error: function(error){ alert("error: " + JSON.stringify(error)); } })

La firma del controlador de API web que recibe los datos JSON es esta.

 public HttpResponseMessage RoutePostData(string formname, [FromBody] JToken postdata)

Mis pruebas unitarias de C# pueden enviar los mismos datos JSON sin ningún problema, pero enviar los datos JSON desde una página web genera un problema.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Tu json está mal. "Perfil": { falta la llave "EmailAddress". No estoy seguro si es un error de copiar y pegar o un error de código. Sin embargo, se trunca justo después de fantástico.

Cambia tu json a

 {"Formname":"inspection","Formdata":{"UserId":1011357,"InspectionId":40013,"VehicleReg":"AA123ABC","Results":[{"QuestionId":100053,"OptionId":30192,"OptionResponse":"fantastic"}]},"Profile":{"EmailAddress":"myname@mycompany.com","OscarId":"1011369"}}
about 4 years ago · Santiago Trujillo Denunciar

0

Si formdata ya es un objeto javascript, no es necesario que lo convierta en stringify .

 $.ajax({ type: "POST", url: url, contentType: "application/json", headers: { "Authorization" : "TESTUSER " + signedToken}, data: formdata, success: function(data){ alert("Task successfully processed."); }, error: function(error){ alert("error: " + JSON.stringify(error)); } })

Puede leer más en la página de documentación: http://api.jquery.com/jQuery.ajax/

about 4 years ago · Santiago Trujillo Denunciar

0

Prueba esto:

 <configuration> <appSettings> <add key="aspnet:MaxJsonDeserializerMembers" value="5000" /> </appSettings> </configuration>

Establezca el valor en algo de su elección.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda