删除JSON JObject.Parse的根

时间:2014-06-06 14:12:04

标签: c# json parsing json.net

我有一个JSON字符串如下所示,当我用JObject.parse解析它时,我有一个例外,因为开头有一个根,所以现在我想在这种情况下删除root,我搜索了一些例子在Internet上但没有使用JObject.parse。

var data = JObject.Parse(content)
  

setting.callbacks._2({ “listDatesDebut”:[ “2014-06-20”], “listDatesFin”:[ “2014年6月21日”, “2014年6月22日”,“2014-06- 23" , “2014年6月24日”, “2014-06-25”, “2014年6月26日”, “2014年6月27日”, “2014年6月28日”, “2014年6月29日” “2014-06-30”, “2014年7月1日”, “2014年7月2日”, “2014年7月3日”, “2014年7月4日”, “2014年7月5日”,” 2014年7月6" 日, “2014年7月7日”, “2014年7月8日”, “2014年7月9日”, “2014年7月10日”, “2014年7月11日”,“2014- 07-12" , “2014年7月14日”, “2014年7月15日”, “2014年7月16日”, “2014年7月17日”, “2014年7月18日”], “listCategoriesThemes”: [{ “idCategorieTheme”:1, “nomCategorieTheme”:“123   双 “},{” idCategorieTheme “:3”,nomCategorieTheme “:” PMR “},{” idCategorieTheme “:2”,nomCategorieTheme “:” 2   lits simples“}],”listThemes“:[{”idTheme“:1,”nomTheme“:”标准车“   ....)

在此示例中,我想删除根 setting.callbacks._2(和根目录的最后一个右括号

2 个答案:

答案 0 :(得分:0)

你可以使用正则表达式

var json = Regex.Match(jsonp, @".+\((.+)\).+").Groups[1].Value;

修改

顺便说一句,如果您使用的是this API,只需从网址中删除回调参数,即可获得 clean json。

答案 1 :(得分:0)

既然你知道你想要的是在输入字符串的第一个和最后一个括号之间,你可以找到它们的索引并采用它们之间的内容:

int i = input.IndexOf('(');
int j = input.LastIndexOf(')');
string json = input.Substring(i + 1, j - i - 1);
JObject jo = JObject.Parse(json);