2011-07-28 33 views
8

que puede serializar XML a una cadena JSON como esto:cómo serializar XML a un objeto JSON con Json.NET

var xml = new XmlDocument(); 
xml.LoadXml("<person><name>John</name></person>"); 
string jsonString = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xml, Newtonsoft.Json.Formatting.None); 
Response.ContentType = "application/json"; 
Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(jsonString)); 

que me daría:

"{\"person\":{\"name\":\"John\"}}" 

Pero cómo puedo serializar a un objeto JSON? De esta manera:

{"person":{"name":"John"}} 

Respuesta

19

veces sólo quieren hacer que sea más difícil de lo que es ...

var xml = new XmlDocument(); 
xml.LoadXml("<person><name>John</name></person>"); 
Response.ContentType = "application/json"; 
Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(xml)); 

lo que hice mal fue para serializar el XML en una cadena y luego serializarlo nuevo.

+0

en mi caso tengo un método wcf del cual debo devolver la cadena json. Dataset> xml> json pero cuando me convierto en una cadena json, me encuentro con el mismo problema. mi método de firma: [WebGet (RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, bodystyle = WebMessageBodyStyle.Wrapped, UriTemplate = "?/Methosnamenamespoace cadena de consulta")] cadena mthodname (args); ¿qué debo devolver en caso de obtener JSON adecuada en el otro extremo. Por favor guía. –

+0

¿Se puede usar un archivo .xml local en lugar de la cadena xml en Loadxml()? – cardiac7

+1

@ cardiac7 Sí, puedes usar cualquier 'XmlDocument' para eso. No importa cómo se llenó el objeto con XML. – Koopakiller

0

cuando accederá a los datos y/o no se mostrará automáticamente. Estoy accediendo en HTML5 a la ayuda de la publicación de AJAX. El resultado está mostrando

en C# resultado es que demuestra que "{\" persona \ ": {\" name \ ": \" Juan \ "}}"

Pero en HTML 5, que está trabajando muy bien {"persona": {"nombre": "Juan"}}

Cuestiones relacionadas