C # StringBuilder con cotizaciones (forJSON)

Construí una cadena JSON (para publicarla en un servicio web) y utilicé la clase C # StringBuilder para hacer esto. El problema es que cuando inserto comillas, la clase StringBuilder se les escapa.

Actualmente estoy construyendo la cadena JSON como tal:

StringBuilder dataJSON= new StringBuilder(); dataJSON.Append("{"); dataJSON.Append(" " + Convert.ToChar(34) + "data" + Convert.ToChar(34) + ": {"); dataJSON.Append(" " + Convert.ToChar(34) + "urls" + Convert.ToChar(34) + ": ["); dataJSON.Append(" {" + Convert.ToChar(34) + "url" + Convert.ToChar(34) + ": " + Convert.ToChar(34) + domain + "/" + path[0] + Convert.ToChar(34) + "}"); dataJSON.Append(" ,{" + Convert.ToChar(34) + "url" + Convert.ToChar(34) + ": " + Convert.ToChar(34) + domain + "/" + path[1] + Convert.ToChar(34) + "}"); dataJSON.Append(" ]"); dataJSON.Append(" }"); dataJSON.Append("}"); 

Sin embargo, el comando: dataJSON.ToString(); resultados en la cadena:

 { \"data\": { \"urls\": [ {\"url\": \"domain/test1.html\"} , {\"url\": \"domain/test2.html\"} ] }} 

Observe las citas escapadas? Esto realmente me está jodiendo, porque el servidor no puede manejar las barras diagonales.

Mi deseado (que se publica correctamente en mi servidor cuando uso PHP) debería ser:

 { "data": { "urls": [ {"url": "domain/test1.html"} , {"url": "domain/test2.html"} ] }} 

¿Hay alguna manera de obtener una cadena en C # para incluir citas que resulten en la cadena deseada?

¡Muchas gracias! Brett

La ventana QuickWatch / Watch agregará la entrada adicional. Si lo ve en el Visualizador de texto, no los verá:

QuickWatch:

 "{ \"data\": { \"urls\": [ {\"url\": \"domain/path1\"} ,{\"url\": \"domain/path2\"} ] }}" 

Visualizador (la salida real):

 { "data": { "urls": [ {"url": "domain/path1"} ,{"url": "domain/path2"} ] }} 

El \ indica que las comillas se han escapado y se incluirán en la cadena final como se espera que estén. Es decir, no hay nada malo con su salida.

NÓTESE BIEN. Utilicé "\"" lugar de Convert.ToChar(34) cuando probé esto.

Es posible que tenga más suerte con la biblioteca Newtonsoft.JSON , o alternativamente simplemente evite las barras oblicuas como \ “en sus cadenas literales en lugar de usar Char (34).

 dataJSON.Append(" \"data\": {");