2017-08-24 4 views
0

Ich habe ein Formularfeld (textarea) in meiner Anwendung, die doppelte Anführungszeichen ("") enthalten kann. Für einen JSON -String habe ich ein kleines "Setup" geschrieben, das danach gesendet wird. Ich stieß auf das Problem, dass, wenn ein Benutzer die doppelten Anführungszeichen verwendet, mein Setup bricht.Escape oder ersetzen doppelte Anführungszeichen aus Formularfeld

Dies ist, wie es wie bisher aussieht:

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 & """}" 
Sie

Und nur um zu zeigen, wo ich bin mit ihm:

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

Die in diesem Verfahren verwendeten Variablen Argumente in der aktuellen werden Funktion. Ich dachte daran, doppelte Anführungszeichen zu entkommen, aber ich komme irgendwie auf Websites, die vorschlagen, dass ich chr(34) in einem Response.Write verwenden sollte, was nicht das ist, wonach ich suche.

Ich habe auch versucht die Replace -function, ähnlich zu verwenden, wie ich dies in PHP tun würde:

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

Aber wie Sie heraus kann ein Single-Zitat beginnt einen Kommentar im klassischen ASP. Wie kann ich die Anführungszeichen hier loswerden? Es spielt keine Rolle, ob ich " in ' umwandle oder die doppelten Anführungszeichen behalte. Jeder Vorschlag wird geschätzt

Antwort

0

Wenn Sie ein sichtbares Anführungszeichen innerhalb einer Zeichenfolge in asp benötigen, müssen Sie es verdoppeln.

Response.Write("""") 

Wenn Sie ein doppeltes Anführungszeichen ersetzen wollen,

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

doppelte Anführungszeichen angezeigt werden (oder Apostroph) in einem JSON-String, müssen Sie es entkommen:

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