C# 如何解析C中的示例字符串#
我有这根绳子C# 如何解析C中的示例字符串#,c#,json,string,parsing,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 可能吗?该字符串是一个JSON字符串,因此您可以创建一个类来获取如下值 public
[
{
"url_short":"http:\/\/sample.com\/8jyKHv",
"url_long":"http:\/\/www.sample.com\/",
"type":0
}
]
我想要的是得到http:\/\/sample.com\/8jyKHv并将其翻译成
http://sample.com/8jyKHv
可能吗?该字符串是一个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;
在这堂课之后,你可以得到这样的数据
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;
string json=“[{”url\u short:“http:\/\/sample.com\/8jyKHv”,“url\u long:“http:\/\/www.sample.com\/”,“type”:0}];
List ro=JsonConvert.DeserializeObject(json);
字符串ururl=ro[0]。属性1[0]。url\u short;
JSON方式肯定是推荐的,但不能说明太多。下面是使用正则表达式的另一种方法:
Regex rgxUrl = new Regex("\"url_short\":\"(.*?)\",\"");
Match mUrl = rgxUrl.Match(yourString);
string url = Regex.Replace(mUrl.Groups[1].Value, @"\", "");
这个字符串是JSON
您可以使用
例如:
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);
}
}
使用系统;
使用System.Collections.Generic;
使用Newtonsoft.Json;
公共类根对象
{
公共字符串url_short{get;set;}
公共字符串url_long{get;set;}
公共int类型{get;set;}
}
公共课程
{
静态公共void Main()
{
字符串j=“[{\”url\\\\\\\”:\“http:\\/\\/sample.com\\/8jyKHv\”,\“url\\\\\/\\/www.sample.com\\\/\”,\“type\\”:0}];
List ro=JsonConvert.DeserializeObject(j);
Console.WriteLine(ro[0].url\u-short);
}
}
答复:
试试这个
创建一个如下所示的类
注意:您可以在VisualStudio中使用“粘贴特殊”选项来生成与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;
}
公共类url\u详细信息
{
公共字符串url_short{get;set;}
公共字符串url_long{get;set;}
公共int类型{get;set;}
}
公共列表json_反序列化()
{
字符串json=“[{\”url\\\\\\”:\“http:\\/\\/sample.com\\/8jyKHv\”,\“url\\\\/\\/www.sample.com\\/\”,\“type\\”:0}];
列表项=新列表();
items=JsonConvert.DeserializeObject(json);
退货项目;
}
您可以访问如下所示的元素
List<url_details> obj = json_deserialized();
string url_short = obj[0].url_short;
List obj=json_反序列化();
字符串url\u short=obj[0]。url\u short;
这里有两个选项。要么将其视为字符串并使用substring和replace。要么将其视为JSON,然后将其反序列化为类对象。这两种方法都会产生JSON反序列化方法所需的结果,我建议使用JSON方法,而不是字符串/substring/replace方法。删除\是过时的,因为反序列化后它就消失了。您的json示例字符串错误(缺少“\”)。请参阅specsOne error left:json包含一个对象数组;o) 必须是Regex.Replace(mUrl.Groups[1].Value,@“\\”,“”)@没有@
已在转义字符串。要么“\\”
要么@“\”
。