【发布时间】:2021-02-09 05:18:16
【问题描述】:
我有一种情况,我收到了一个包含随机值的输入字符串 ("54403dd5-5f1d-4ba0-8477-9b16807ee285"),基本上该字符串是从另一个源代码接收的,但我只是粘贴在那里以供参考,还请注意,我拆分模式是为了获得更清晰的字符串输出(可以省略)。我真正需要的是如何从那里只选择那个 Id 值,以便我可以进一步处理。我还粘贴了到目前为止我所做的但不是运气生成的输出,如果您有更好的方法来仅获得这个值而没有其他任何东西,我将不胜感激。
String input = "\"{\"Protocol\":\"12345\",\"Version\":1,\"Timestamp\":\"2020-05-01T21:55:12.123456Z\",\"Assignment\":{\"Id\":\"54403dd5-5f1d-4ba0-8477-9b16807ee285\",\"Asset\":[]}}\"";
String pattern = @"\s-\s?[+*]?\s?-\s";
int found = 0;
String[] elements = System.Text.RegularExpressions.Regex.Split(input, pattern);
foreach (var element in elements)
Console.WriteLine(element);
Console.WriteLine("\nWe want to retrieve only the Id string value. That is:");
foreach (string s in elements)
{
found = s.IndexOf("Id");
Console.WriteLine(s.Substring(found + 5));
}
输出:
"{"Protocol":"12345","Version":1,"Timestamp":"2020-05-01T21:55:12.123456Z","Assignment":{"Id":"54403dd5-5f1d-4ba0-8477-9b16807ee285","Asset":[]}}"
我们只想检索 Id 字符串值。那是:
54403dd5-5f1d-4ba0-8477-9b16807ee285","Asset":[]}}"
【问题讨论】:
-
阅读如何反序列化 JSON。而您试图获取的值在 .NET 中称为 GUID。
-
@Camillo 不是在每种编程语言中都称为 GUID 吗?
-
即使在编程语言之外,它也被称为 GUID。
标签: c# json string-parsing