簡體   English   中英

不解析從 json 到 android java 的數組

[英]Not parsing the array from json to android java

為什么不解析從 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();}
}

我想顯示它的列表視圖。

這是因為您在 for 循環中使用了 jsonObject。 您需要從該 object 獲取 Employee jsonArray ,然后遍歷它以獲取員工列表 -

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM