2016-07-27 193 views
1

我很長時間以來一直在解決這個問題。 其實,我有一個QR碼中,我有這樣的文字:從字符串獲取JsonObject時出錯

{ "Version ": 0x1, "Type ": "MapPoint ", "X ": 2, "Y ": 3} 

然後我的這個QR碼的內容轉換成一個JSON對象:

JSONObject scanQRCode = new JSONObject(contents); 

當我調試,我發現該字符串的內容是這樣的:

" { \"Version \": 0x1, \"Type \": \"MapPoint \", \"X \": 2, \"Y \": 3} " 

而且ScanQRCode等於說:

{{"Version ":1,"Type ":"MapPoint ","X ":2,"Y ":3}} Org.Json.JSONObject 

而且在我的代碼我需要驗證這種情況,並獲得雙X和Y如下:

 if (scanQRCode.Has("Version") && scanQRCode.GetInt("Version") >= 0x1 && scanQRCode.Has(KEY_QR_TYPE) && scanQRCode.GetString("Type").Equals(("MapPoint"))) 
{ 
float x = (float)scanQRCode.GetDouble("X"); 
    float y = (float)scanQRCode.GetDouble("Y"); 
} 

問題是,條件是永遠不會滿足,我甚至不能例如雙X.

你能告訴我什麼是錯的?

回答

0
{ "Version": "0x1", "Type":"MapPoint", "X": 2, "Y": 3} 

這已經是一個JSON對象,沒有必要再次轉換就可以直接使用它作爲跟隨

var a = { "Version": "0x1", "Type":"MapPoint", "X": 2, "Y": 3} 
float x = a.X; 
+0

'{ 「版本」: 「爲0x1」, 「類型」: 「MapPoint的」, 「X」:2,「Y」:3}' 是我編碼爲QR碼的文本。 但我得到它的內容然後等於: '「{\」Version \「:0x1,\」Type \「:\」MapPoint \「,\」X \「:2,\」Y \「 :3}「' – fao