Не парсинг массива с json на андроид java - PullRequest
0 голосов
/ 13 октября 2019

Почему это не парсинг массива с json на android java, помогите пожалуйста решить эту проблему? Я хочу показать это в виде списка. Как я могу добиться этого?

String strJson="{\"Employee\":[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        final ArrayList<String> item = new ArrayList<String>();
        final ArrayList<Employee> employ = new ArrayList<Employee>();
        String data;

        try {
            JSONObject jsonObject = new JSONObject(strJson);
             //jsonArray = new JSONArray(strJson);
             // Log.d("jsonArrayLength: ", "Length: "+ jsonObject.length());

            for (int i = 0; i < jsonObject.length(); i++) {
                Employee emp = new Employee();
                String name = jsonObject.getString("name");
                String id = jsonObject.getString("id");
                String salary = jsonObject.getString("salary");
                emp.setId(id);
                emp.setName(name);
                emp.setSalary(salary);
                item.add(i,name);
                employ.add(i,emp);
            }

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

Я хочу показать это в виде списка.

1 Ответ

0 голосов
/ 13 октября 2019

Это потому, что вы используете jsonObject для цикла for. Вам необходимо получить jsonArray Employee из этого объекта, а затем выполнить итерацию по нему, чтобы получить список сотрудников как -

 try {
        JSONObject jsonObject = new JSONObject(strJson);
        JSONArray jsonArr = jsonObject.getJSONArray("Employee");
        Log.d("jsonArrayLength: ", "Length: "+ jsonArr.length());

        for (int i = 0; i < jsonArr.length(); i++) {
            Employee emp = new Employee();
            JSONObject empObj = jsonArr.getJSONObject(i);
            String name = empObj.getString("name");
            String id = empObj.getString("id");
            String salary = empObj.getString("salary");
            emp.setId(id);
            emp.setName(name);
            emp.setSalary(salary);
            item.add(i,name);
            employ.add(i,emp);
        }

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