2012-09-07 55 views
0

我想在android中将以下json字符串转换为JSONObject。但它会抛出JSONException。过去几个小时我一直在挖掘我的想法。请帮忙。JSON和Android。不能转换JSON字符串到JSONObject

JSON字符串:

parseExchangeRate({"query": 
      {"count":1,"created":"2012-09-07T18:49:32Z","lang":"en-US","results": 
         {"row":{"rate":"55.395","name":"USD to INR"}}}}); 

例外:

Value <jsonobject>parseExchangeRate(of type java.lang.String cannot be converted to JSONObject 

代码:

String result = convertStreamToString(instream); 
Log.d(TAG, result); //this outputs the above stated string 
JSONObject json = new JSONObject(result); // this line thows exception 

在此先感谢。

+0

松散'parseExchangeRate()' – RvdK

回答

2

什么是JSON字符串?你说,它是,

parseExchangeRate({"query": 
       {"count":1,"created":"2012-09-07T18:49:32Z","lang":"en-US","results": 
         {"row":{"rate":"55.395","name":"USD to INR"}}}}); 

但看起来像一行JavaScript代码。 JSON!= javascript。它看起来像你的网络服务回传JSONP响应。这很好,但由于您不是JavaScript客户端,因此您需要从该响应中解析出实际的JSON字符串。

String result = convertStreamToString(instream); 
Pattern p = Pattern.compile("^.*?\\((.*?)\\);$", Pattern.DOTALL); 
Matcher m = p.matcher(result); 
if (m.matches()) { 
    String json = m.group(1); 
    JSONObject jo = new JSONObject(json); 
    ... 
} else { 
    // whoops 
} 
+0

谢谢。现在很清楚我没有json的知识 – harshit

相关问题