之间我使用改编自this so answer删除在JSON数据方括号中除了qoutes
// remove outer bracket
JSONdata = JSONdata.Trim().Trim('[', ']');
// remove white space and line breaks except between double qoutes
JSONdata = Regex.Replace(JSONdata.Trim('"').Replace("\\\"", "\""), "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1");
// add back bracket
JSONdata = "[" + JSONdata + "]";
以下代码,然后我得到的数据是这样的:
[
[
{"OptionChoice":14151,"OptionText":"Television"},
{"OptionChoice":14755,"OptionText":"Test[ something ]"}
]
,{"OptionChoice":361,"OptionText":"Yes"}
]
或缩小的(因为它是我的真码)
[[{"OptionChoice":14151,"OptionText":"Television"},{"OptionChoice":14755,"OptionText":"Test[ something ]"}],{"OptionChoice":361,"OptionText":"Yes"}]
添加了空白和换行符k仅为例子。真正的数据没有空白或换行符
我想能够得到保持外部括号,但删除不使用双引号的内部括号的设置。
编辑:预期输出
[
{"OptionChoice":14151,"OptionText":"Television"},
{"OptionChoice":14755,"OptionText":"Test[ something ]"},
{"OptionChoice":361,"OptionText":"Yes"}
]
精缩:
[{"OptionChoice":14151,"OptionText":"Television"},{"OptionChoice":14755,"OptionText":"Test[ something ]"},{"OptionChoice":361,"OptionText":"Yes"}]
我必须承认,我不完全理解,我已经使用正则表达式。
...现在我有两个问题。
什么是d预期输出 – vks 2014-09-24 14:25:42
这可能是更好地使用图书馆像JSON.NET解析和格式化JSON,而不是处理字符串 – 2014-09-24 14:32:21
它可能是,我最终可能会在切换未来,但现在我只想修复无效的数据。显然最好的办法是让客户端通过有效的JSON,我也在做。 – gooddadmike 2014-09-24 14:41:43