2017-08-24 1 views
0

J'ai un champ de formulaire (textarea) dans mon application, qui peut contenir des guillemets (""). Pour un JSON -String, j'ai écrit un petit "setup", qui est envoyé après. J'ai rencontré le problème, que si un utilisateur utilise les guillemets doubles, mon installation se brise.échapper ou remplacer les guillemets de formulaire-champ

Voici comment il ressemble à ce jour:

dim payload 
payload = payload & "{""short_description"":""" & Replace(Replace(trim(shortDesc),chr(10),""), chr(13), "") & """," 
payload = payload & """description"":""" & Replace(Replace(trim(Description),chr(10),""), chr(13), "") &"""," 
payload = payload & """u_requester"":"""& sgi &"""," 
payload = payload & """contact_type"":""Self-service""," 
payload = payload & """cmdb_ci"":""" & system &"""," 
payload = payload & """u_category"":""" & category & """}" 

Et juste pour vous montrer où je l'utilise:

With http 
    Call .Open("POST", url, False) 
    Call .SetRequestHeader("Accept", "application/json") 
    Call .SetRequestHeader("Content-Type", "application/json") 
    Call .Send(payload) 
End With 

Les variables utilisées dans cette méthode sont des arguments dans le courant fonction. Je pensais à échapper les guillemets, mais je finis par me retrouver sur des sites qui suggèrent que je devrais utiliser chr(34) dans un Response.Write, ce qui n'est pas ce que je cherche.

J'ai essayé aussi d'utiliser le Replace -fonction, comme la façon dont je le faire en PHP:

Replace(myvar, '"'; "'")

Mais comme vous compris, un guillemet simple commence un commentaire en ASP classique. Comment puis-je me débarrasser des doubles guillemets ici? Peu importe si je convertis " en ' ou garde les guillemets. Toute suggestion est appréciée

Répondre

0

Si vous avez besoin d'une double citation visible dans une chaîne dans asp, vous devez le doubler.

Response.Write("""") 

Si vous voulez remplacer un guillemet,

str = Replace(str,"""","") 
0

pour afficher un guillemet (ou guillemet simple) dans une chaîne JSON, vous devez échapper:

str = "this is a ""test""." 
strForJson = Replace(str, """", "\""")