2016-09-30 109 views
0

我有一個無效的JSON字符串一樣,轉換無效的JSON字符串單或沒有引號

"{StateName: { before: 'AA', after: 'AAA'} }," 

任何人都可以請正則表達式表達有助於替換無效的字符串有效的JSON數據?我需要跳過末尾的逗號&用雙引號替換單引號或在雙引號缺失的位置添加雙引號。

在此先感謝。

+0

@Arti我試圖做這樣對於單個屬性值,如 string str =「{StateName:{before:'AA',after:'AAA'}},」 Regex.Replace(str,@「(^ | \ s)before:(\ s | $)」,「\」before \「:」); – Appu

+0

@Arti,所以我想知道是否有任何方法,如果有可能做多個無效字符串替換。 – Appu

回答

0

使用與string.replace()

jsonString = jsonString.Replace("'", "\""); 
jsonString = jsonString.Replace("},", "}"); 
+0

在屬性名稱中缺少雙引號的情況下如何?就像在這種情況下** StateName ** – Appu

0

只要你對你的JSON字符串使用DeserializeObject()

string json = "{\"StateName\": { "\before\": "\AA\", "\after\": "\AAA\"} }"; 

然後

object jsondata = JsonConvert.DeserializeObject(json.ToString()); 
+0

我擁有的字符串不是有效的JSON格式。所以我不能使用DeserializeObject() – Appu

+0

我相信作爲@ princeofmince建議 如果你的StateName是靜態的,那麼你可以 jsonString = jsonString.Replace(「StateName」,「\」StateName \「」); 但如果不知道你會如何處理這種類型的響應字符串爲json? – hsehb

相關問題