Merche300
17/04/16, 10:57:23
¿como puedo parsear este JSON?
[
{
"codCompeticion": "284",
"nomCompeticion": "2ª.Cadete I \"Copa Coca Cola\" Valencia",
"jornadas": [
{
"jornada": "1",
"idClubLocal": "0201211",
"idEquipoLocal": "0201211301",
"nomLocal": "Meliana C.F. \"A\"",
"idClubVisitante": "0201045",
"idEquipoVisitante": "0201045301",
"nomVisitante": "Rafelbuñol C.F.",
"resLocal": "0",
"resVisitante": "3",
"fecha": "17/10/2015",
"hora": "10:30",
"codInfo": "81769",
"escudoLocal": "./img/logosClubes/0201211.jpg",
"escudoVisitante": "./img/logosClubes/0201045.jpg"
},
{
"jornada": "2",
"idClubLocal": "0201045",
"idEquipoLocal": "0201045301",
"nomLocal": "Rafelbuñol C.F.",
"idClubVisitante": "0201573",
"idEquipoVisitante": "0201573211",
"nomVisitante": "F.B. Alfara Del Patriarca",
"resLocal": "0",
"resVisitante": "10",
"fecha": "24/10/2015",
"hora": "12:30",
"codInfo": "123322",
"escudoLocal": "./img/logosClubes/0201045.jpg",
"escudoVisitante": "./img/logosClubes/0201573.jpg"
}
]
}
]
Y mi codigo:
import android.content.Context;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
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.ImageRequest;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;
import com.herprogramacion.restaurantericoparico.R;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class Calendario_Volley_Adapter extends ArrayAdapter {
// Atributos
private RequestQueue requestQueue;
JsonArrayRequest jsArrayRequest;
private static final String URL_BASE = "http://www.XXX";
private static final String URL_JSON = "";
private static final String TAG = "";
private static final String ESCUDO = "http://XXX";
List<Calendario_Volley> items;
public Calendario_Volley_Adapter(Context context) {
super(context,0);
// Crear nueva cola de peticiones
requestQueue= Volley.newRequestQueue(context);
// Nueva peticion JSONObject
jsArrayRequest = new JsonArrayRequest(
Request.Method.GET,
URL_BASE + URL_JSON,
null,
new Response.Listener<JSONArray>() {
/**
* Called when a response is received.
*
* param response
*/
override
public void onResponse(JSONArray response) {
}
public void onResponse(JSONObject response) {
items = parseJson(response);
notifyDataSetChanged();
}
},
new Response.ErrorListener() {
override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "Error Respuesta en JSON: " + error.getMessage());
}
}
);
// Anyadir peticion a la cola
requestQueue.add(jsArrayRequest);
}
override
public int getCount() {
return items != null ? items.size() : 0;
}
override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
// Referencia del view procesado
View listItemView;
//Comprobando si el View no existe
listItemView = null == convertView ? layoutInflater.inflate(
R.layout.calendario_row,
parent,
false) : convertView;
// Obtener el item actual
Calendario_Volley item = items.get(position);
// Obtener Views
TextView textoNombre = (TextView) listItemView.findViewById(R.id.tv_Nombre);
TextView textoTargetas = (TextView) listItemView.findViewById(R.id.tv_Fecha);
TextView textoAmarillas = (TextView) listItemView.findViewById(R.id.tv_Hora);
TextView textoDobles = (TextView) listItemView.findViewById(R.id.tv_Equipo_Local);
TextView textoRojas = (TextView) listItemView.findViewById(R.id.tv_Equipo_Visitante );
TextView textoEquipo = (TextView) listItemView.findViewById(R.id.tv_Result_Local);
TextView textoResultado_Visitante = (TextView) listItemView.findViewById(R.id.tv_Result_Visitante );
TextView textoArbitro = (TextView) listItemView.findViewById(R.id.tv_Arbitro);
final ImageView imageEscudo_Local = (ImageView) listItemView.
findViewById(R.id.tv_esc_local);
final ImageView imageEscudo_Visitante = (ImageView) listItemView.
findViewById(R.id.tv_esc_visi);
// Actualizar los Views
textoNombre.setText(item.getNombre());
textoTargetas.setText(item.getTargetas());
textoAmarillas.setText(item.getAmarillas());
textoDobles.setText(item.getDobles());
textoRojas.setText(item.getRojas());
textoEquipo.setText(item.getEquipo());
textoResultado_Visitante.setText(item.getResultado _Visitante());
textoArbitro.setText(item.getArbitro());
ImageRequest request = new ImageRequest(
ESCUDO + item.getEscudo_Local(),
new Response.Listener<Bitmap>() {
override
public void onResponse(Bitmap bitmap) {
imageEscudo_Local.setImageBitmap(bitmap);
}
}, 0, 0, null,null,
new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
imageEscudo_Local.setImageResource(R.drawable.erro r);
Log.d(TAG, "Error en respuesta Bitmap: "+ error.getMessage());
}
});
requestQueue.add(request);
request = new ImageRequest(
ESCUDO + item.getEscudo_Visitante(),
new Response.Listener<Bitmap>() {
override
public void onResponse(Bitmap bitmap) {
imageEscudo_Visitante.setImageBitmap(bitmap);
}
}, 0, 0, null, null,
new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
imageEscudo_Visitante.setImageResource(R.drawable. error);
Log.d(TAG, "Error en respuesta Bitmap: " + error.getMessage());
}
});
requestQueue.add(request);
// Anyadir peticion a la cola
return listItemView;
}
public List<Calendario_Volley> parseJson(JSONObject jsonObject){
// Variables locales
List<Calendario_Volley> rankingAmonestacionesCadetes = new ArrayList<>();
JSONArray jsonArray= null;
try {
// Obtener el array del objeto
jsonArray = jsonObject.getJSONArray("jornadas");
for(int i=0; i<jsonArray.length(); i++){
try {
JSONObject objeto= jsonArray.getJSONObject(i);
Calendario_Volley RankingAmonestacionesCadetes = new Calendario_Volley(
("JORNADA - ")+objeto.getString("jornada"),
("FECHA - ")+objeto.getString("fecha"),
objeto.getString("nomLocal"),
("HORA - ")+objeto.getString("hora"),
objeto.getString("nomVisitante"),
objeto.getString("resVisitante"),
objeto.getString("resLocal")+(" - "),
("ARBITRO - ")+objeto.getString("resLocal"),
objeto.getString("escudoLocal"),
objeto.getString("escudoVisitante")+(" - "));
rankingAmonestacionesCadetes.add(RankingAmonestaci onesCadetes);
} catch (JSONException e) {
Log.e(TAG, "Error de parsing: " + e.getMessage());
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return rankingAmonestacionesCadetes;
}
}
Se que es un array pero no se como se hace para hacero.
[
{
"codCompeticion": "284",
"nomCompeticion": "2ª.Cadete I \"Copa Coca Cola\" Valencia",
"jornadas": [
{
"jornada": "1",
"idClubLocal": "0201211",
"idEquipoLocal": "0201211301",
"nomLocal": "Meliana C.F. \"A\"",
"idClubVisitante": "0201045",
"idEquipoVisitante": "0201045301",
"nomVisitante": "Rafelbuñol C.F.",
"resLocal": "0",
"resVisitante": "3",
"fecha": "17/10/2015",
"hora": "10:30",
"codInfo": "81769",
"escudoLocal": "./img/logosClubes/0201211.jpg",
"escudoVisitante": "./img/logosClubes/0201045.jpg"
},
{
"jornada": "2",
"idClubLocal": "0201045",
"idEquipoLocal": "0201045301",
"nomLocal": "Rafelbuñol C.F.",
"idClubVisitante": "0201573",
"idEquipoVisitante": "0201573211",
"nomVisitante": "F.B. Alfara Del Patriarca",
"resLocal": "0",
"resVisitante": "10",
"fecha": "24/10/2015",
"hora": "12:30",
"codInfo": "123322",
"escudoLocal": "./img/logosClubes/0201045.jpg",
"escudoVisitante": "./img/logosClubes/0201573.jpg"
}
]
}
]
Y mi codigo:
import android.content.Context;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
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.ImageRequest;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;
import com.herprogramacion.restaurantericoparico.R;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class Calendario_Volley_Adapter extends ArrayAdapter {
// Atributos
private RequestQueue requestQueue;
JsonArrayRequest jsArrayRequest;
private static final String URL_BASE = "http://www.XXX";
private static final String URL_JSON = "";
private static final String TAG = "";
private static final String ESCUDO = "http://XXX";
List<Calendario_Volley> items;
public Calendario_Volley_Adapter(Context context) {
super(context,0);
// Crear nueva cola de peticiones
requestQueue= Volley.newRequestQueue(context);
// Nueva peticion JSONObject
jsArrayRequest = new JsonArrayRequest(
Request.Method.GET,
URL_BASE + URL_JSON,
null,
new Response.Listener<JSONArray>() {
/**
* Called when a response is received.
*
* param response
*/
override
public void onResponse(JSONArray response) {
}
public void onResponse(JSONObject response) {
items = parseJson(response);
notifyDataSetChanged();
}
},
new Response.ErrorListener() {
override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "Error Respuesta en JSON: " + error.getMessage());
}
}
);
// Anyadir peticion a la cola
requestQueue.add(jsArrayRequest);
}
override
public int getCount() {
return items != null ? items.size() : 0;
}
override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
// Referencia del view procesado
View listItemView;
//Comprobando si el View no existe
listItemView = null == convertView ? layoutInflater.inflate(
R.layout.calendario_row,
parent,
false) : convertView;
// Obtener el item actual
Calendario_Volley item = items.get(position);
// Obtener Views
TextView textoNombre = (TextView) listItemView.findViewById(R.id.tv_Nombre);
TextView textoTargetas = (TextView) listItemView.findViewById(R.id.tv_Fecha);
TextView textoAmarillas = (TextView) listItemView.findViewById(R.id.tv_Hora);
TextView textoDobles = (TextView) listItemView.findViewById(R.id.tv_Equipo_Local);
TextView textoRojas = (TextView) listItemView.findViewById(R.id.tv_Equipo_Visitante );
TextView textoEquipo = (TextView) listItemView.findViewById(R.id.tv_Result_Local);
TextView textoResultado_Visitante = (TextView) listItemView.findViewById(R.id.tv_Result_Visitante );
TextView textoArbitro = (TextView) listItemView.findViewById(R.id.tv_Arbitro);
final ImageView imageEscudo_Local = (ImageView) listItemView.
findViewById(R.id.tv_esc_local);
final ImageView imageEscudo_Visitante = (ImageView) listItemView.
findViewById(R.id.tv_esc_visi);
// Actualizar los Views
textoNombre.setText(item.getNombre());
textoTargetas.setText(item.getTargetas());
textoAmarillas.setText(item.getAmarillas());
textoDobles.setText(item.getDobles());
textoRojas.setText(item.getRojas());
textoEquipo.setText(item.getEquipo());
textoResultado_Visitante.setText(item.getResultado _Visitante());
textoArbitro.setText(item.getArbitro());
ImageRequest request = new ImageRequest(
ESCUDO + item.getEscudo_Local(),
new Response.Listener<Bitmap>() {
override
public void onResponse(Bitmap bitmap) {
imageEscudo_Local.setImageBitmap(bitmap);
}
}, 0, 0, null,null,
new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
imageEscudo_Local.setImageResource(R.drawable.erro r);
Log.d(TAG, "Error en respuesta Bitmap: "+ error.getMessage());
}
});
requestQueue.add(request);
request = new ImageRequest(
ESCUDO + item.getEscudo_Visitante(),
new Response.Listener<Bitmap>() {
override
public void onResponse(Bitmap bitmap) {
imageEscudo_Visitante.setImageBitmap(bitmap);
}
}, 0, 0, null, null,
new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
imageEscudo_Visitante.setImageResource(R.drawable. error);
Log.d(TAG, "Error en respuesta Bitmap: " + error.getMessage());
}
});
requestQueue.add(request);
// Anyadir peticion a la cola
return listItemView;
}
public List<Calendario_Volley> parseJson(JSONObject jsonObject){
// Variables locales
List<Calendario_Volley> rankingAmonestacionesCadetes = new ArrayList<>();
JSONArray jsonArray= null;
try {
// Obtener el array del objeto
jsonArray = jsonObject.getJSONArray("jornadas");
for(int i=0; i<jsonArray.length(); i++){
try {
JSONObject objeto= jsonArray.getJSONObject(i);
Calendario_Volley RankingAmonestacionesCadetes = new Calendario_Volley(
("JORNADA - ")+objeto.getString("jornada"),
("FECHA - ")+objeto.getString("fecha"),
objeto.getString("nomLocal"),
("HORA - ")+objeto.getString("hora"),
objeto.getString("nomVisitante"),
objeto.getString("resVisitante"),
objeto.getString("resLocal")+(" - "),
("ARBITRO - ")+objeto.getString("resLocal"),
objeto.getString("escudoLocal"),
objeto.getString("escudoVisitante")+(" - "));
rankingAmonestacionesCadetes.add(RankingAmonestaci onesCadetes);
} catch (JSONException e) {
Log.e(TAG, "Error de parsing: " + e.getMessage());
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return rankingAmonestacionesCadetes;
}
}
Se que es un array pero no se como se hace para hacero.