【问题标题】:How can I pick a specific random string up from an arrayString? [closed]如何从数组 String 中选择特定的随机字符串? [关闭]
【发布时间】: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


【解决方案1】:

如果你不介意使用 Newtonsoft.Json 包,你可以试试这个:

string input = "{\"Protocol\":\"12345\",\"Version\":1,\"Timestamp\":\"2020-05-01T21:55:12.123456Z\",\"Assignment\":{\"Id\":\"54403dd5-5f1d-4ba0-8477-9b16807ee285\",\"Asset\":[]}}";
var obj = JObject.Parse(input);
Guid id = obj.SelectToken("Assignment").SelectToken("Id").ToObject<Guid>();

更新

如果您不想使用 Newtonsoft 软件包,您可以使用 System.Text 进行此操作:

string input = "{\"Protocol\":\"12345\",\"Version\":1,\"Timestamp\":\"2020-05-01T21:55:12.123456Z\",\"Assignment\":{\"Id\":\"54403dd5-5f1d-4ba0-8477-9b16807ee285\",\"Asset\":[]}}";
using(var doc = JsonDocument.Parse(input))
{
    Guid id = doc.RootElement.GetProperty("Assignment").GetProperty("Id").GetGuid();
}

【讨论】:

  • 我可以确认此代码有效并产生54403dd5-5f1d-4ba0-8477-9b16807ee285
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 2017-01-12
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
相关资源
最近更新 更多