2016-09-30 110 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

相关问题