我有一个类似下面提到的字符串。
{
behavior_capture_widget: "<div id="ndwc"><noscript><input type="hidden" id="ndpd-spbd" name="ndpd-spbd" value="ndpds~~~2.4177.112540pPaGJYVmt5WCtndGlUiUcRt3aSOPQ,,"></noscript></div> <script type="text/javascript"></script>"
customer_session_data: "2.4177.112540.1399312572.2.mFDzrW_JJeu-C_H45O5ADQ"
customer_cookie_data: "2.4177.112540.1399312572.2.XYjAsjFsOVHFXBGNnnHc-g,,."
}
我将始终以此格式获取字符串。值可能会有所不同。
我必须提取
的值behavior_capture_widget
customer_session_data
customer_cookie_data
变量a,b,c
中的
我是c#的新手,我尝试使用substring()
,indexof()
的组合,但无济于事
帮助将不胜感激。
提前致谢。
答案 0 :(得分:1)
您可以使用string.Split来获取大部分内容,而不是使用子字符串:
var input = "... your data ...";
var valueNames = new []
{
"behavior_capture_widget:",
"customer_session_data:",
"customer_cookie_data:"
};
var items = input.Split(valueNames, StringSplitOptions.RemoveEmptyEntries);
现在您可以提取您的值:
var behaviorCaptureWidget = items[1].Trim();
var customerSessionData= items[2].Trim();
var customerCookieData= items[3].Trim().Replace("\"}", "");
请注意,最后一个需要手动删除尾随"}
。
答案 1 :(得分:0)
如果那是JSON总是。我认为最好使用&#34; Json.NET&#34;:
string json = @"{
{
behavior_capture_widget: "<div id=\"ndwc\"><noscript><input type=\"hidden\" id=\"ndpd-spbd" name=\"ndpd-spbd\" value=\"ndpds~~~2.4177.112540pPaGJYVmt5WCtndGlUiUcRt3aSOPQ,,\"></noscript></div> <script type=\"text/javascript\"></script>"
customer_session_data: "2.4177.112540.1399312572.2.mFDzrW_JJeu-C_H45O5ADQ"
customer_cookie_data: "2.4177.112540.1399312572.2.XYjAsjFsOVHFXBGNnnHc-g,,."
}";
Dictionary<string, string> dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
var mydata = dict["customer_cookie_data"]; // extraction
见here