2011-10-18 8 views
0

私はそのまま次の文字列を返すWebサービスを持っている:AndroidのJSONのパーストラブル

"{\"type\":\"youtube\", \"data\":\"http://66.84.12.156/android/?x=12&uid=4&lati=40.73972412&longi=-73.99234962&y=14&pixel_id=7224&pid=4&surface_id=7&fn=showHTML&data_id=7224&data=kT2UQ8TYMpk\",\"pixel_id\":\"471\",\"x\":\"12\",\"y\":\"14\",\"pid\":\"4\",\"surface_id\":\"7\",\"data_id\":\"7224\",\"user_id\":\"4\"}"

コードLKEになります。私は、多くの異なるフォーマットを試してみた

dataScanner.client = new DefaultHttpClient(); 
dataScanner.post = new HttpPost("http://someurl/somepage.php"); 
post.setEntity(new UrlEncodedFormEntity(userKV)); 
Log.d("DST Scanner", "post string:" + post.toString()); 
HttpResponse response = client.execute(post); 

BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
     StringBuilder builder = new StringBuilder(); 
     for (String line = null; (line = reader.readLine()) != null;) { 
      builder.append(line); 
     } 
     Log.d("DST Scanner", "Post Response (string)" + builder.toString()); 
     //JSONTokener tokener = new JSONTokener(builder.toString()); 
     finalResult = new JSONObject(builder.toString()); 

は(、引用符、エスケープ引用符をエスケープ何の周囲の引用符は、スラッシュをエスケープしていない)が、私はこのエラーを取得しておいてください。

org.json.JSONException: Value {"type":"youtube", "data":"http://66.84.12.156/android/?x=12&uid=4&lati=40.73972412&longi=-73.99234962&y=14&pixel_id=7224&pid=4&surface_id=7&fn=showHTML&data_id=7224&data=kT2UQ8TYMpk","pixel_id":"471","x":"12","y":"14","pid":"4","surface_id":"7","data_id":"7224","user_id":"4"} of type java.lang.String cannot be converted to JSONObject

すべてリットル私には大丈夫ですが、私はこれを見てきましたが、私がやっているばかげたことがあれば、私は驚かないでしょう。

+0

Webサービスが壊れています。 json文字列の引用符は、そのようにエスケープしないでください。 –

答えて

0

私はjsonを初めて使っています。 "["と "]"で終わり、PHPを使ってjson_encodeメソッドをエコーし​​ます。 Androidの側で

は、私が使用します。

try { 
     URL pHH = new URL("http://192.168.1.5/somephp.php"); 
     URLConnection WC = pHH.openConnection(); 
     BufferedReader in = new BufferedReader(new    InputStreamReader(WC.getInputStream())); 

     String line; 
     while((line = in.readLine()) != null){ 
      JSONArray ja = new JSONArray(line); 

      for (int i = 0; i < ja.length(); i++){ 
       JSONObject jo = (JSONObject) ja.get(i); 
       items[i] = jo.getString("title"); 
       thumbnails[i] = jo.getString("thumb"); 
       links[i] = jo.getString("link"); 
      } 
     } 
0
char[] utf8 = null; 
      StringBuilder properString = new StringBuilder(""); 

      utf8 = Response.toCharArray(); 

      for (int i = 0; i < utf8.length; i++) { 
       if ((int) utf8[i] < 65000) { 
        properString.append(utf8[i]); 
       } 
      } 
    System.out.println("Response of Login::" 
         + properString.toString());