【问题标题】:c# Get some text from a string generated by qr code [duplicate]c#从二维码生成的字符串中获取一些文本[重复]
【发布时间】:2023-03-21 18:20:01
【问题描述】:

我在 c# 上使用 windows 窗体执行此程序,用户将拥有一个 qr 扫描仪,并且必须单击一个按钮才能开始查询。

来自 qr 的扫描仪读取这样的信息

{
    "se": "NUMBERS",
    "de": "NUMBERS",
    "cs": "NUMBERS",
    "pc": "NUMBERS",
    "nm": "NUMBERS",
    "tp": "DEL",
    "dt": "NUMBERS",
    "tz": "UTC+01",
    "dk": ""
}

如何从 qr 字符串中提取数字?

qr 总是一样的,只有数字会改变,我需要从字符串中提取数字并稍后将它们用于 sql 查询。

【问题讨论】:

  • 我猜你也需要钥匙。到目前为止有什么尝试吗?

标签: c# windows-forms-designer


【解决方案1】:

这看起来像一个 JSON 字符串,因此您可以使用 Newtonsoft.Json nuget 包来解析字符串并使用它的结果。

这是您必须为该特定字符串使用的类(this site 非常方便)

public class AnObject
{
    public string se { get; set; }
    public string de { get; set; }
    public string cs { get; set; }
    public string pc { get; set; }
    public string nm { get; set; }
    public string tp { get; set; }
    public string dt { get; set; }
    public string tz { get; set; }
    public string dk { get; set; }
}

然后你可以像这样解析字符串

public static void Main()
{
    var scannerInput = "{\"se\":\"NUMBERS\",\"de\":\"NUMBERS\",\"cs\":\"NUMBERS\",\"pc\":\"NUMBERS\",\"nm\":\"NUMBERS\",\"tp\":\"DEL\",\"dt\":\"NUMBERS\",\"tz\":\"UTC+01\",\"dk\":\"\"}";
    var obj = JsonConvert.DeserializeObject<AnObject>(scannerInput);


    Console.WriteLine(obj.se);
    Console.WriteLine(obj.de);
    Console.WriteLine(obj.cs);
    Console.WriteLine(obj.pc);
}

完整示例:https://dotnetfiddle.net/RTdMRF

注意:正如蒂姆所说,如果你的字符串总是这样格式化并且你的数字没有逗号(时区和 dk 字段也应该没有逗号),他的回答应该会给你一个更容易和更快的解决方案。也没有额外的包。

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    相关资源
    最近更新 更多