2016-04-21 63 views
1

我有一个JSON数据,其中包含数百个数据,如下面的格式。如何删除锚点标签,但保留在一个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

所以该数据是一个字符串,你哗哗反序列化之前删除HTML标签? – smoksnes

回答

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?

+0

真棒。感谢您的解决方案。它完美的作品。 – Ean

相关问题