Leyendo contenido no html con AgilityPack

c# html-agility-pack

Pregunta

Uno de los servicios que estamos cargando es responder solo con el objeto JSON puro. Estamos cargando todos los servicios con el paquete de agilidad html, todos menos esto. Otros servicios están representando una etiqueta de script, con un JSON dentro, y funciona como se esperaba. Pero no puedo cargar estos datos cuando vienen en formato no html. El documento cargado no tiene elementos, y la propiedad de texto es una cadena vacía, la excepción nula del objeto html externo / interno de DocumentElement, el texto interior está vacío o nulo.

Intento cargar este único servicio con HttpWebRequest y hace el trabajo, pero no quiero mezclar tecnologías solo porque este servicio.

¿Es posible cargar la página de datos JSON pura con HtmlAgilityPack?

Respuesta aceptada

ACTUALIZACIÓN:

Resultó que he malinterpretado la pregunta.

La funcionalidad principal de HAP es para analizar HTML, mientras que su problema está en descargar el HTML (o JSON en este caso). HtmlWeb de HAP solo proporciona una funcionalidad básica para realizar esta tarea, por lo que es muy probable que tenga que cambiar a otras herramientas una vez que se encuentre en una situación en la que HtmlWeb ya no funciona. Este es otro ejemplo de este tipo de situación: configuración de HTML Agility Pack


Respuesta inicial:

La prueba rápida muestra que DocumentElement.InnerText devuelve el JSON simplemente bien:

var json = @"{
    identifier: '2051189775',     //PRODUCT ID
    fn: 'Fit- Whiskered Dark Wash Skirt',
    category: ['sale'],
    brand: 'Brand Name',
    price: '22.90',  // this would be the discount price
    amount: '31.80',  // this would be the original price
    currency: 'USD',
    //List can me even more.
};";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(json);

Console.WriteLine(doc.DocumentNode.InnerText);

Demostración en vivo aquí: https://dotnetfiddle.net/nPT49L

Si esto no funciona, publique datos JSON de muestra que demuestren el problema.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué