我正在尝试通过子字符串来获取字符串的一部分,这就是我的字符串:{"samanState":"OK","samanResNum":"97d590e2-9ce3-49f9-85cf-2228b33cad57","samanTraceNo":"479936"}
我不能做这样的事情:substring(8,16),因为该字符串每次都会改变。我想从中得到479936
。我确定TraceNo":"
是静态的并且永远不会改变,所以我这样做了:
<td>@(bankDepositHistoryItem.AdditionalData.Substring
(bankDepositHistoryItem.AdditionalData.IndexOf("TraceNo\":\""),
bankDepositHistoryItem.AdditionalData.Length- bankDepositHistoryItem.AdditionalData.IndexOf("TraceNo\":\"")-2)) </td>
但是输出是:TraceNo":"479936
我应该怎么得到:479936
非常感谢
答案 0 :(得分:0)
这是一个JSON字符串,因此我将首先使用流行的Json.NET框架库将该字符串转换为.NET对象。
将Newtonsoft.Json NuGet程序包添加到您的项目后,您的代码将如下所示:
override fun dismiss() {
Utils.hideKeyboard(mContext, window)
super.dismiss()
}
答案 1 :(得分:0)
如果您仍然想解析字符串,则可以使用几个方便的字符串扩展方法(我也有整数和Regex的变体):
public static string Past(this string s, string starter) {
var starterPos = s.IndexOf(starter);
return starterPos == -1 ? String.Empty : s.Substring(starterPos + starter.Length);
}
public static string UpTo(this string s, string stopper) {
var stopPos = s.IndexOf(stopper);
return (stopPos >= 0) ? s.Substring(0, stopPos) : s;
}
然后提取:
var ans = bankDepositHistoryItem.Past("\"samanTraceNo\":\"").UpTo("\"");