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

本文关键字:保留 文本 json 数据 删除 何单独 | 更新日期: 2024-10-25 04:30:05

我有一个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# 中执行此操作。谁能帮忙。

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

基于Bidou在这里提供的答案 如何在不知道字符串中包含哪些标签的情况下从字符串中删除所有 HTML 标记?

你可以做这样的事情:

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

如此处所述: 如何在 ASP.NET 中将 JSON 反序列化为简单的字典<字符串,字符串>?