我有这个字符串
[
{
"url_short":"http:\/\/sample.com\/8jyKHv",
"url_long":"http:\/\/www.sample.com\/",
"type":0
}
]
我想要的是将http:\/\/sample.com\/8jyKHv
转换成
http://sample.com/8jyKHv
这是可能的吗?
我有这个字符串
[
{
"url_short":"http:\/\/sample.com\/8jyKHv",
"url_long":"http:\/\/www.sample.com\/",
"type":0
}
]
我想要的是将http:\/\/sample.com\/8jyKHv
转换成
http://sample.com/8jyKHv
这是可能的吗?
这个字符串是JSON格式的。
你可以使用JSON.NET来解析它。
例如:
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<RootObject> ro = JsonConvert.DeserializeObject<List<RootObject>>(j);
Console.WriteLine(ro[0].url_short);
}
}
Response:
请尝试以下操作:
创建如下类:
``` 注意: 您可以在Visual Studio中使用Paste Special选项来生成与JSON相关的所有类。 编辑 -> Paste Special -> Paste Json As Classes ```这将创建与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;
JSON 的方式确实是推荐的,但我不能多说。这里提供一个使用正则表达式的替代方法:
Regex rgxUrl = new Regex("\"url_short\":\"(.*?)\",\"");
Match mUrl = rgxUrl.Match(yourString);
string url = Regex.Replace(mUrl.Groups[1].Value, @"\", "");
@
已经转义了字符串。可以使用 "\\"
或 @"\"
。 - C4dpublic 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;