2016-04-10 47 views
1

私は新しいプログラマです。私はJsonでアプリケーションを構築しようとしています。Json Parseは正しく動作しませんが、jsontestで動作します

私はJsonパーサクラスを作成しました。私の主なアクティビティには次のコードがあります。 String url = "http://echo.jsontest.com/key/value/one/two";

     JSONObject json = jParser.getJSONFromUrl(url); 

one = json.getString(gridArray.get(lekeres).getTitle()); // oneは良い値 "two"を持っています

これは素晴らしいです。 BUT

もし私がURLを:https://api.myjson.com/bins/3f8d2 に変更すると、これはjsontestとまったく同じコードですが、1つには "2"がありません。私は何時間も捜しましたが、なぜこれが起こっているのか分かりません。私は何もしなかったが、URLを変更する。コンテストは同じです...

+0

'json.toString()'は何を返しますか? – Dimi

+0

httpsの代わりにhttpであなたのURLを試してみてください。データを取得する際に問題があると思います。私のブラウザmyjson.comの証明書は無効です。 –

答えて

0

あなたのパーサーはどのように分かっていますか?私は簡単なテストを行い、このコードで、通常は両方のリンクを読むことができます:

 try { 
      //url = new URL(""http://echo.jsontest.com/key/value/one/two2"); 
      url = new URL("https://api.myjson.com/bins/3f8d2"); 
      InputStream is = url.openStream(); 
      JSONObject json = null; 
      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); 
      StringBuilder sb = new StringBuilder(); 
      int cp; 
      while ((cp = rd.read()) != -1) { 
       sb.append((char) cp); 
      } 
      String jsonText = sb.toString(); 
      json = new JSONObject(jsonText); 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

これは、より多くの例である:http://en.proft.me/2013/12/5/how-parse-json-java/。 同様にgetJSONFromUrlを作成できます。それ以外の場合は、https://なしで試してください。

+0

WOW!感謝の気持ちです!私はパーサが悪いと思っていますが、なぜ私はわかりません – Davinho

+0

@KnetigDavid:うれしいことです。たぶんあなたはもっと多くの例を探し、パーサーを微調整することができます。がんばろう。 – ninjahoahong

関連する問題