none
SQL Server - FOR JSON AUTO: Adiciona una barra invetida (\) delante de las barras normales (/) RRS feed

  • Pregunta

  • Hola a todos, tengo un problema que les detallo a continuación:

    • Si hago una consulta que incluye el caracter "/", en las tablas de resultado me muestra todo correcto.
    • Si la misma consulta la llevo a JSON con FOR JSON AUTO, se adiciona na barra invertida por delante del "/", o sea queda asi "\/"

    En la siguiente imagen se puede visualizar lo expresado:

    Bueno la pregunta del millon es porque se autoadiciona la barra invertida y como puedoevitarlo, ya que esto me traera problemas con fechas, ya que en lugar de mostrar un '12/07/1978' me mostrara un "12\/07\/1978", y mayor problema aun cuando vaya a deserealizarlo a un objeto que posea un capor datetime.

    Saludos cordiales a todos.


    Roy Sillerico

    viernes, 15 de septiembre de 2017 3:54

Respuestas

  • En teoría no debería causar ningún problema cuando vayas a deserializar. En JSON, "/" y "\/" son equivalentes.

    La razón por lo que algunos serializadores JSON "escapan" la "/" es que bajo algunas circunstancias puede causar problemas, por ejemplo si la "/" va detrás de "<" y el JSON se envía encapsulado en xml o html, se dispara la regla SGML para "fin de elemento de script". Para evitar inconvenientes, y dado que no causa ningún daño (si el deserializador implementa correctamente las reglas de JSON), el serializador escapa la barra "por si acaso".

    viernes, 15 de septiembre de 2017 9:08