【发布时间】:2019-05-06 12:31:37
【问题描述】:
我试图通过子字符串获取字符串的一部分,这是我的字符串:{"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
我不得不说我知道这可以通过序列化和反序列化实现,但我想知道这是否可以通过子字符串或拆分或类似的方法实现。
非常感谢
【问题讨论】:
-
了解如何使用 JSON 解析器。
-
对我来说这看起来像 json。尝试通过反序列化来获得您的价值。
-
@TimBiegeleisen 好的,谢谢,我会阅读有关反序列化的信息
-
从不自行解析 JSON。一旦您的数据结构发生变化,这将变得难以维护。您应该使用反序列化器,例如而是 NewtonSoft。
-
将json转换为对象,然后就可以使用属性和值了。例如
JToken token = JObject.Parse(stringFullOfJson);。更多细节可以在这里找到:stackoverflow.com/a/4749755/218408
标签: c# asp.net-mvc razor split substring