如何单独删除锚标记,但将文本保留在json数据中

时间:2016-04-21 08:14:32

标签: c#

我有一个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#中执行此操作。任何人都可以提供帮助。

1 个答案:

答案 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?