2017-12-18 142 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沒有逗號),他的回答應該給你一個更容易和更快的解決方案。也沒有額外的軟件包。