2016-07-27 191 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