c#从二维码生成的字符串中获取一些文本
c# Get some text from a string generated by qr code
我正在使用 windows 表单在 c# 上执行此程序,用户将有一个二维码扫描仪,并且必须单击一个按钮来启动查询。
二维码中的扫描器读取到这样的信息
{
"se": "NUMBERS",
"de": "NUMBERS",
"cs": "NUMBERS",
"pc": "NUMBERS",
"nm": "NUMBERS",
"tp": "DEL",
"dt": "NUMBERS",
"tz": "UTC+01",
"dk": ""
}
如何从二维码字符串中提取数字?
qr 总是一样的,只有数字会改变,我需要从字符串中提取数字,稍后将它们用于 sql 查询。
这看起来像一个 JSON 字符串,因此您可以使用 Newtonsoft.Json
nuget 包来解析字符串并使用它的结果。
这是您必须用于该特定字符串的 class(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
注意:正如 Tim 所说,如果您的字符串始终采用这种格式并且您的数字没有逗号(时区和 dk 字段也应该没有逗号),他的回答应该会给您一个更简单、更快速的解决方案。也没有额外的包裹。
我正在使用 windows 表单在 c# 上执行此程序,用户将有一个二维码扫描仪,并且必须单击一个按钮来启动查询。
二维码中的扫描器读取到这样的信息
{
"se": "NUMBERS",
"de": "NUMBERS",
"cs": "NUMBERS",
"pc": "NUMBERS",
"nm": "NUMBERS",
"tp": "DEL",
"dt": "NUMBERS",
"tz": "UTC+01",
"dk": ""
}
如何从二维码字符串中提取数字?
qr 总是一样的,只有数字会改变,我需要从字符串中提取数字,稍后将它们用于 sql 查询。
这看起来像一个 JSON 字符串,因此您可以使用 Newtonsoft.Json
nuget 包来解析字符串并使用它的结果。
这是您必须用于该特定字符串的 class(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
注意:正如 Tim 所说,如果您的字符串始终采用这种格式并且您的数字没有逗号(时区和 dk 字段也应该没有逗号),他的回答应该会给您一个更简单、更快速的解决方案。也没有额外的包裹。