2016-12-27 4 views
-4

Volley library을 사용하여 JSON 응답을 구문 분석 한 결과 this video으로 완료되었습니다. 하지만 오류가 발생합니다. 오류 :발리 라이브러리를 사용하여 JSON을 구문 분석하는 방법

E/VOLLEY: ERROR

누군가 나를 도와 줄 수 있습니까? 나는 그 문제가 뭔지 모른다.

편집 : 추가 된 코드

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"); 
       } 
      } 

실제로 말할 것이다이 방법

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

에 오류가 아니라 "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

관련 문제