Tengo un manejador web ASP.Net que devuelve resultados de una consulta en formato JSONescape en C# para el consumo 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;
}
El problema es que a veces los datos devueltos tiene cotizaciones en ella y que necesitaría a javascript-escape estos para que pueda ser creado correctamente en un objeto js. Necesito una forma de encontrar citas en mis datos (las citas no están disponibles todas las veces) y colocar un carácter "/" delante de ellos.
texto Ejemplo de respuesta (mal):
{"rows":[{"id":"ABC123","length":"5""},
{"id":"DEF456","length":"1.35""},
{"id":"HIJ789","length":"36.25""}]}
que tendría que escapar de la "así que mi respuesta debería ser:
{"rows":[{"id":"ABC123","length":"5\""},
{"id":"DEF456","length":"1.35\""},
{"id":"HIJ789","length":"36.25\""}]}
Además, soy bastante nuevo en C# (codificación general, en realidad) por lo que si alguna otra cosa en mi código es el tonto que me haga saber
+1 Niza hecho. –
No maneja datos con otros caracteres especiales JS: barra invertida, línea nueva, retorno de carro. –
No muy bien hecho - como David mencionó, esto no funcionará para muchos otros caracteres especiales. La respuesta de @Lone Coder a continuación es mejor. – zcrar70