有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法读取我发送给安卓应用程序的JSON响应

你好,我正在尝试在我的安卓设备上创建一个本地数据库。我编写了返回以下响应的php脚本:

{"ruta":[{"id_ruta":"1","ime_rute":"1","duljina_rute":"6","max_visina":"3","trajanje_rute":"5","opis_rute":"2","lokacija_rute":"4","oprema_rute":""},{"id_ruta":"2","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"3","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"4","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"5","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"6","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"7","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"8","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"9","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"10","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"11","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"12","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"13","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"14","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"15","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"16","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"17","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"18","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"19","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"20","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"21","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"22","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"23","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"24","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"},{"id_ruta":"25","ime_rute":"test","duljina_rute":"0.02","max_visina":"184.51","trajanje_rute":"00:00:42","opis_rute":"hop","lokacija_rute":"hop","oprema_rute":"hop"}],"success":1}

当我试着在LogCat中写下响应的内容时,它说没有价值。这是我使用的代码的一部分

JSONParser jsonParser = new JSONParser();
JSONArray rute = null;

private static final String TAG_SUCCESS = "success";

private static final String TAG_RUTA = "ruta";
private static final String TAG_ID_RUTA = "id_ruta";
private static final String TAG_IME_RUTE = "ime_rute";
private static final String TAG_DULJINA_RUTE = "duljina_rute";
private static final String TAG_MAX_VISINA = "max_visina";
private static final String TAG_TRAJANJE_RUTE = "trajanje_rute";
private static final String TAG_OPIS_RUTE = "opis_rute";
private static final String TAG_LOKACIJA_RUTE = "lokacija_rute";
private static final String TAG_OPREMA_RUTE = "oprema_rute";


List<NameValuePair> params = new ArrayList<NameValuePair>();

// HERE I GET THE JSON RESPONSE
JSONObject json = jsonParser.makeHttpRequest(link,"GET", params);

try {
    int success = json.getInt(TAG_SUCCESS);
    //AND HERE I TRY WRITING STUFF FROM THE RESPONSE

    Log.d("Create Response", json.toString());

    new Delete().from(Ruta.class).execute();

    Log.d("RUTE GET INT",String.valueOf(json.getInt(TAG_SUCCESS)));
    Log.d("RUTE GET JSON STRING",json.getString(TAG_RUTA));
    if (success == 1) {  

    rute = json.getJSONArray(TAG_RUTA);
    Log.d("RUTE",rute.toString());
    for(int i = 0; i<rute.length(); i++){
         JSONObject r = rute.getJSONObject(i);

         Ruta nova_ruta = new Ruta();

         nova_ruta.IDRute = Integer.parseInt(r.getString(TAG_ID_RUTA));
         nova_ruta.Naziv = r.getString(TAG_IME_RUTE);
         nova_ruta.Udaljenost = Integer.parseInt(r.getString(TAG_DULJINA_RUTE));
         nova_ruta.MaxVisina = Integer.parseInt(r.getString(TAG_MAX_VISINA));
         nova_ruta.Trajanje = r.getString(TAG_TRAJANJE_RUTE);
         nova_ruta.Opis = r.getString(TAG_OPIS_RUTE);
         nova_ruta.Lokacija = r.getString(TAG_LOKACIJA_RUTE);
         nova_ruta.Oprema = r.getString(TAG_OPREMA_RUTE);

         nova_ruta.save();
                        }

这是LogCatscreenshot


共 (1) 个答案

  1. # 1 楼答案

    因为键ruta的值是一个数组,而不是您请求的字符串。排队

    Log.d("RUTE GET JSON STRING",json.getString(TAG_RUTA));
    

    导致了例外