Cómo analizar una cadena de ejemplo en C #

Tengo esta cuerda

[ { "url_short":"http:\/\/sample.com\/8jyKHv", "url_long":"http:\/\/www.sample.com\/", "type":0 } ] 

Lo que quiero es obtener http:\/\/sample.com\/8jyKHv y traducirlo a

 http://sample.com/8jyKHv 

¿Es posible?

La forma de JSON es segura, pero no se puede decir mucho al respecto. Aquí está la forma alternativa con expresiones regulares:

 Regex rgxUrl = new Regex("\"url_short\":\"(.*?)\",\""); Match mUrl = rgxUrl.Match(yourString); string url = Regex.Replace(mUrl.Groups[1].Value, @"\", ""); 

Esta cadena es JSON.

Puedes analizarlo usando JSON.NET .

Ejemplo:

 using System; using System.Collections.Generic; using Newtonsoft.Json; public class RootObject { public string url_short { get; set; } public string url_long { get; set; } public int type { get; set; } } public class Program { static public void Main() { string j = "[{\"url_short\":\"http:\\/\\/sample.com\\/8jyKHv\",\"url_long\":\"http:\\/\\/www.sample.com\\/\",\"type\":0}]"; List ro = JsonConvert.DeserializeObject>(j); Console.WriteLine(ro[0].url_short); } } 

Respuesta:

http://sample.com/8jyKHv

Prueba esto

Crea una clase como la de abajo.

Nota: puede usar la opción Pegado especial en Visual Studio para generar todas las clases relacionadas con JSON

Editar -> Pegado especial -> Pegar Json como clases

Creará todas las clases relacionadas con el JSON.

  public class url_details { public string url_short { get; set; } public string url_long { get; set; } public int type { get; set; } } public List json_deserialized() { string json = "[{\"url_short\":\"http:\\/\\/sample.com\\/8jyKHv\",\"url_long\":\"http:\\/\\/www.sample.com\\/\",\"type\":0}]"; List items = new List(); items = JsonConvert.DeserializeObject>(json); return items; } 

Y puedes acceder al elemento como abajo.

  List obj = json_deserialized(); string url_short = obj[0].url_short; 

La cadena es una cadena JSON por lo que puede crear una clase para obtener los valores como este

 public class Rootobject { public Class1[] Property1 { get; set; } } public class Class1 { public string url_short { get; set; } public string url_long { get; set; } public int type { get; set; } } 

Después de esta clase puedes obtener datos como este.

 string json = "[{"url_short":"http:\/\/sample.com\/8jyKHv","url_long":"http:\/\/www.sample.com\/","type":0}]"; List ro = JsonConvert.DeserializeObject>(json); string ururl = ro[0].Propert1[0].url_short;