Mam obsługi ASP.NET sieci Web, która zwraca wyniki kwerendy w formacie JSONUcieczka Cytat w C# do spożycia javascript
public 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;
}
Problem polega na tym, że czasami dane zwracane ma w nim cytaty i musiałbym do javascript-uciec z nich, aby można było poprawnie utworzyć obiekt js. Potrzebuję sposobu, aby znaleźć cytaty w moich danych (cytaty nie są za każdym razem) i umieścić przed nimi znak "/".
tekst Przykład odpowiedzi (źle):
{"rows":[{"id":"ABC123","length":"5""},
{"id":"DEF456","length":"1.35""},
{"id":"HIJ789","length":"36.25""}]}
musiałbym uciec ", więc moja odpowiedź powinna być:
{"rows":[{"id":"ABC123","length":"5\""},
{"id":"DEF456","length":"1.35\""},
{"id":"HIJ789","length":"36.25\""}]}
Ponadto, jestem całkiem nowy, C# (kodowanie w ogólnie naprawdę) więc jeśli coś innego w moim kodzie wygląda głupio, daj mi znać:
+1 Ładnie wykonane. –
Nie obsługuje danych z innymi specjalnymi znakami JS: odwrotny ukośnik, nowa linia, powrót karetki. –
Naprawdę nie tak ładnie wykonane - jak David wspomniał, to nie zadziała dla wielu innych znaków specjalnych. Odpowiedź @Lone Coder poniżej jest lepsza. – zcrar70