Sukhi_15 Ответов: 0

Ошибка при разборе объектов json в android.


Logcat says:
W/System.err: org.json.JSONException

Может ли кто-нибудь помочь мне разобраться в этом, пройдя через код?

Вот этот код: Mainactivity.java

 public class MainActivity extends AppCompatActivity {
 Button click;
 public static  TextView tv_data;


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

    click = (Button)findViewById(R.id.secondactivity);
    tv_data = (TextView)findViewById(R.id.fetcheddata);

    click.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            fetchData process   = new fetchData();
            process.execute();

        }
    });
}
} 

fetchData.java:

public class fetchData extends AsyncTask<Void,Void,Void> {

String products="";
String dataParsed = "";
String singleParsed = "";
@Override
protected Void doInBackground(Void... voids) {
    try {
        URL url = new URL("http://staging.giftintime.com/mobile/categories/4/subcategories");
        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
        InputStream inputStream = httpURLConnection.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

        String line="";
        while (line!=null){
            line= bufferedReader.readLine();
            products= products+line;
        }

        JSONArray JA = new JSONArray(products);
        for(int i=0;i<JA.length();i++){
            JSONObject JO = (JSONObject) JA.get(i);
            singleParsed = "Name:" + JO.get("name") + "\n" +
                           "Description:" + JO.get("description") + "\n" +
                           "Price:" + JO.get("price") + "\n" +
                           "Currency:" + JO.get("cost_currency") + "\n" ;

            dataParsed  = dataParsed+singleParsed + "\n";

        }

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

@Override
protected void onPostExecute(Void aVoid) {
    super.onPostExecute(aVoid);
    MainActivity.tv_data.setText(this.dataParsed);
}
}


Что я уже пробовал:

Я пытаюсь получить подробную информацию о продуктах с URL-адреса . Однако, есть исключение в JSON, когда пытаюсь разбора JSON-объектов.

Richard MacCutchan

Вам нужно захватить текст, который вызывает исключение.

Sukhi_15

да... спасибо.. я все решил.

0 Ответов