2016-12-27 16 views
-4

Volley libraryを使ってJSON応答を解析しました。this videoで行われました。しかし、私はエラーが発生しています。エラーは次のとおりです。ボレーライブラリを使用してJSONを解析する方法

E/VOLLEY: ERROR

誰かが私を助けてくれますか?私は問題が何であるか分からない。

EDIT:コードを追加しました

package com.example.hello.Project; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.JsonObjectRequest; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

public class Activity1 extends Activity { 

Button start; 
TextView textView; 
RequestQueue requestQueue; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity1); 

start = (Button) findViewById(R.id.btn); 
textView = (TextView) findViewById(R.id.textView2); 
requestQueue = Volley.newRequestQueue(this); 

start.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v){ 

     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "http://example.com/abc.json", 
       new Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 

         try { 
          JSONArray jsonArray = response.getJSONArray("abc"); 

          for(int i = 0; i < jsonArray.length(); i++) { 

           JSONObject student = jsonArray.getJSONObject(i); 

           String a= student.getString("a"); 
           String b= student.getString("b"); 
           String c= student.getString("c"); 
           String d= student.getString("d"); 

           textView.append(a+" \n"+b+" \n"+c+" \n "+d+" \n"); 

          } 
         } catch (JSONException e){ 
          e.printStackTrace(); 
         } 
        } 
       }, 

       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Log.e("VOLLEY","ERROR"); 
        } 
       } 


     ); 

     requestQueue.add(jsonObjectRequest); 
    } 
}); 
} 
} 

これはコードです。

+0

試したコードを投稿できますか?さもなければ私達は本当にあなたを助けることができません – Isaac

+0

それは応答エラーですので、JSONとは何の関係もなく、正しいフォーマットです。エラーログを次のように変更してください:Log.e( "VOLLEY"、error.getMessage());ログに何が表示されるかを追加します。それが問題の特定に役立ちます。 –

答えて

1

これはあなたの問題を解決するつもりはありませんが、何がうまくいかないのかを教えてくれます。

変更

new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Log.e("VOLLEY", error.toString()); 
       } 
      } 

new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Log.e("VOLLEY","ERROR"); 
       } 
      } 

この方法は、それは実際にエラーがちょうど "ERROR"、ではない何と言うだろう。

結論として、JSONのサンプルが無効で正しく読み込まれていないという結論が出ました。

+0

それは動作しません。問題を解決する別のアイデアはありますか? – android

+0

「E/VOLLEY:ERROR」とは違うエラーが表示されているはずです。代わりに何を言いましたか? –

+0

いいえ、それはあなたのアイデアに問題はありません。アイデアを書くと、エラーに赤色の下線が引かれます。私はアプリを起動できません – android

0

さらに@ TJ_の回答には、各属性の間にコンマを追加する必要があります。

あなたが(無効である)持っていた:

{ 
    "buli1617sp": [ 
    { 
     name: "Embolo" 
     vereine: "Von Basel zu Schalke" 
     geld: "29 Mio Euro" 
     datum: "01.08.2016" 
    }, 
    { 
     name: "Coke" 
     vereine: "Von Sevilla zu Schalke" 
     geld: "4 Mio Euro" 
     datum: "02.08.2016" 
    }, 
    { 
     name: "Bentaleb" 
     vereine: "Von Basel zu Schalke" 
     geld: "Leihe mit Kaufoption über 19 Mio Euro" 
     datum: "03.08.2016" 
    } 
    ] 
} 

正しいJSON:

{ 
    "buli1617sp": [ 
    { 
     "name": "Embolo", 
     "vereine": "Von Basel zu Schalke", 
     "geld": "29 Mio Euro", 
     "datum": "01.08.2016" 
    }, 
    { 
     "name": "Coke", 
     "vereine": "Von Sevilla zu Schalke", 
     "geld": "4 Mio Euro", 
     "datum": "02.08.2016" 
    }, 
    { 
     "name": "Bentaleb", 
     "vereine": "Von Basel zu Schalke", 
     "geld": "Leihe mit Kaufoption über 19 Mio Euro", 
     "datum": "03.08.2016" 
    } 
    ] 
} 

をJSONで作業する場合、私はJSONが正しくであることを確認するためにこのようなthisなどのオンラインJSONパーサーを使用することをお勧めフォーマットされています。

+0

お世話になりました! – android

関連する問題