2017-12-18 54 views
-1

我正在使用Windows窗体在c#上执行此程序,用户将拥有一个qr扫描程序,并且必须单击一个按钮来启动查询。c#从由qr代码生成的字符串中获取一些文本

从QR扫描仪读取这样

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

我如何从QR字符串中提取的数字信息?

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

+0

我想你也需要关键。到目前为止尝试过的任何事 –

回答

0

看起来像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字段应h没有逗号),他的回答应该给你一个更容易和更快的解决方案。也没有额外的软件包。