如何在C#中解析示例字符串

时间:2016-07-27 08:07:10

标签: c# json string parsing

我有这个字符串

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

我想要的是获取http:\/\/sample.com\/8jyKHv并将其翻译为

http://sample.com/8jyKHv

有可能吗?

4 个答案:

答案 0 :(得分:3)

此字符串为JSON。

您可以使用JSON.NET解析它。

示例:

[7]->[4]->[19]->[3]->[100]->[200]->]

响应:

  

http://sample.com/8jyKHv

答案 1 :(得分:2)

试试这个

创建一个类如下

注意:您可以在visual studio中使用“选择性粘贴”选项来生成与JSON相关的所有类

编辑 - >选择性粘贴 - >将Json粘贴为类

它将创建与JSON相关的所有类

    public class url_details
    {
        public string url_short { get; set; }
        public string url_long { get; set; }
        public int type { get; set; }
    }


    public List<url_details> json_deserialized()
    {
        string json = "[{\"url_short\":\"http:\\/\\/sample.com\\/8jyKHv\",\"url_long\":\"http:\\/\\/www.sample.com\\/\",\"type\":0}]";

        List<url_details> items = new List<url_details>();
        items = JsonConvert.DeserializeObject<List<url_details>>(json);

        return items;
    }

您可以访问以下元素

   List<url_details> obj = json_deserialized();

   string url_short = obj[0].url_short;

答案 2 :(得分:1)

字符串是一个JSON字符串,因此您可以创建一个类来获取像这样的值

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;
    }
}

在此课程之后,您可以获得此类数据

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

答案 3 :(得分:1)

JSON方式肯定是推荐的,但不能说明它。以下是正则表达式的替代方法:

Regex rgxUrl = new Regex("\"url_short\":\"(.*?)\",\"");
Match mUrl = rgxUrl.Match(yourString);

string url = Regex.Replace(mUrl.Groups[1].Value, @"\", "");