2016-04-21 66 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

相關問題