Ich habe eine ASP.Net Web-Handler, derFlucht Quote in C# für Javascript-Verbrauch
Ergebnisse einer Abfrage im JSON-Format zurückgibtpublic static String dt2JSON(DataTable dt)
{
String s = "{\"rows\":[";
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
s += "{";
for (int i = 0; i < dr.Table.Columns.Count; i++)
{
s += "\"" + dr.Table.Columns[i].ToString() + "\":\"" + dr[i].ToString() + "\",";
}
s = s.Remove(s.Length - 1, 1);
s += "},";
}
s = s.Remove(s.Length - 1, 1);
}
s += "]}";
return s;
}
Das Problem ist, dass manchmal die zurückgegebenen Daten Zitate in ihm hat und ich brauchen würde javascript-escape diese, so dass es ordnungsgemäß in ein js-Objekt erstellt werden kann. Ich brauche einen Weg, um Zitate in meinen Daten zu finden (Zitate sind nicht jedes Mal vorhanden) und platziere ein "/" vor ihnen.
Beispiel Antworttext (falsch):
{"rows":[{"id":"ABC123","length":"5""},
{"id":"DEF456","length":"1.35""},
{"id":"HIJ789","length":"36.25""}]}
ich müsste die "so meine Antwort sein sollte, entkommen:
{"rows":[{"id":"ABC123","length":"5\""},
{"id":"DEF456","length":"1.35\""},
{"id":"HIJ789","length":"36.25\""}]}
Auch ich bin ziemlich neu in C# (Codierung in General wirklich) so, wenn etwas anderes in meinem Code sieht albern lassen Sie mich wissen
+1 Gut gemacht. –
Behandelt keine Daten mit anderen speziellen JS-Zeichen: Backslash, Zeilenumbruch, Wagenrücklauf. –
Nicht wirklich so gut gemacht - wie David erwähnt hat, wird dies für viele andere Sonderzeichen nicht funktionieren. @Lone Coders Antwort ist besser. – zcrar70