我有一个json数据,其中包含数百个数据,如下面的格式。
records: [
{
0: "<a name="3096" href="xxx">3096</a>",
1: "02/03/2016",
},
{
0: "<a name="3097" href="yyy">3097</a>",
1: "02/03/2016",
}]
在反序列化之前,我需要从每个记录中删除锚标记,但保留内部文本。它应该像
records: [
{
0: "3096",
1: "02/03/2016",
},
{
0: "3097",
1: "02/03/2016",
}]
如何在C#中执行此操作。任何人都可以提供帮助。
答案 0 :(得分:1)
根据Bidou How do I remove all HTML tags from a string without knowing which tags are in it?
提供的答案您可以这样做:
public static string YourMethod()
{
var bar = "records: [{0: \"<a name=\"3096\" href=\"xxx\">3096</a>\",1: \"02/03/2016\",},{0: \"<a name=\"3097\" href=\"yyy\">3097</a>\",1: \"02/03/2016\",}]";
var result = StripHTML(bar);
return result;
}
public static string StripHTML(string input)
{
return Regex.Replace(input, "<.*?>", String.Empty);
}
它将返回:
records: [{0: "3096",1: "02/03/2016",},{0: "3097",1: "02/03/2016",}]
另一个选项是首先将它序列化到您的类,然后仅从“1”属性中删除锚标记。您也可以检查您的json模型,因为0和1在C#中不是有效的属性名称。它会被序列化为Dictionary
吗?在这种情况下,您可以重新考虑存储它们:
string json = @"{""key1"":""value1"",""key2"":""value2""}";
Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
如上所述:How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?