从字符串c#中删除动态子字符串

时间:2015-12-06 09:43:58

标签: c# json regex string replace

我目前正在实施一个系统并遇到了以下问题。

我们正在调用第三方供应商,该供应商提供的内容不是JSON格式,因此我们尝试从字符串中删除内容,以便构建JSON字符串并将其序列化为我们自己的对象

我们正尝试将该部分从{"imgCount移至]",(就在"图像":

之前)

字符串的示例如下:

img_CB("imgCount":31,"imgHash":"[6ede94341e1ba423ccc2d4cfd27b9760]","images":{...});

问题是,imgCount和imgHash可能不是那个顺序。它可能类似于以下内容:

img_CB("images":{....}, "imgHash":"[6ede94341e1ba423ccc2d4cfd27b9760]", "imgCount":31);

因此,这使得它非常有活力,很难确定从哪里开始"替换"从

是否有人可以帮助构建一个正则表达式来替换/删除imgHash和imgCount标签及其值?

由于

2 个答案:

答案 0 :(得分:0)

看起来你得到了一个jsonp响应。看看这个关于如何在剥离jsonp之后解析你的json的答案:

How to parse JSONP using JSON.NET?

示例:

string supposedToBeJson = "img_CB(\"imgCount\":31,\"imgHash\":\"[6ede94341e1ba423ccc2d4cfd27b9760]\",\"images\":{});";

var jobject = JObject.Parse(supposedToBeJson.Replace("img_CB(", "{").Replace(");", "}"));

var images = jobject.SelectToken("images");

答案 1 :(得分:0)

试试这个:

str = Regex.Replace(str, "\"imgCount*,","");
str = Regex.Replace(str, "\"imgHash*,","");
str = Regex.Replace(str, ",*\"imgCount*)",")");
str = Regex.Replace(str, ",*\"imgHash*)",")");