2011-09-08 29 views
6

... utilizando json2.js y jQueryJSON.stringify() no se escape apóstrofe

como se puede ver en la primera imagen de la propiedad del objeto customerReport.Title tiene un apóstrofe. En el código, puede ver que estoy llamando a JSON.stringify() en cadena de informes que todavía tiene el apóstrofo sin escalar.

el error devuelto por $ .ajax() es {"Message":"Invalid object passed in, \u0027:\u0027 or \u0027}\u0027 expected. ...

Inicialmente sólo voy a prohibir de apóstrofe del usuario, pero pensé JSON.stringify() maneja esto o necesito para configurar alguna opción ????

Gracias

enter image description here

enter image description here

enter image description here

+0

No debería ser necesario para escapar comillas simples en JSON. ¿De dónde viene ese '{" Mensaje ":" Objeto inválido pasado en ... '?" –

+0

¿Qué devuelve este mensaje de error? –

+0

@MattBall Copié eso del panel de consola de Firebug desde la pestaña Respuesta – kevcoder

Respuesta

6

Puede evitar la eliminación de estos apóstrofes sustituyéndolas por una entidad HTML ' - que es una sola quot - y más tarde decodificar Entidades HTML ya sea en la c lient o del lado del servidor.

+0

tratando de evitar eso ... si puedo – kevcoder

+0

¡Evite lo inevitable !: D –

0

Siguiendo ha trabajado para mí después de tantos intentos fallidos para las funciones de análisis y otros stringify JSON:

updatedString = string.replace(/('[a-zA-Z0-9\s]+\s*)'(\s*[a-zA-Z0-9\s]+')/g,"$1\\\'$2"); 

donde

  • cadena = cadena que tiene apóstrofe en ella.
  • updatedString = cadena con apóstrofe problema resuelto/escapó