我目前正在实施一个系统并遇到了以下问题。
我们正在调用第三方供应商,该供应商提供的内容不是JSON格式,因此我们尝试从字符串中删除内容,以便构建JSON字符串并将其序列化为我们自己的对象
我们正尝试将该部分从{"imgCount
移至]",
(就在"图像":
字符串的示例如下:
img_CB("imgCount":31,"imgHash":"[6ede94341e1ba423ccc2d4cfd27b9760]","images":{...});
问题是,imgCount和imgHash可能不是那个顺序。它可能类似于以下内容:
img_CB("images":{....}, "imgHash":"[6ede94341e1ba423ccc2d4cfd27b9760]", "imgCount":31);
因此,这使得它非常有活力,很难确定从哪里开始"替换"从
是否有人可以帮助构建一个正则表达式来替换/删除imgHash和imgCount标签及其值?
由于
答案 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*)",")");