마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

json object에서 key값을 추출하고자합니다

0 추천

일단 서버도받고 db에는 저장됩니다만 제가 json으로 파싱해서 보낸값을 다시 받아서 다른 액티비티에 뿌려줘야하는데 org.json.JSONObject cannot be converted to JSONArray와 같은에러가나며 키값을 출력하지못하고있습니다. 선생님들의 조언부탁드립니다.

 

protected void onPostExecute(String result) {
            super.onPostExecute(result);
            strJson = result;
            writeAct.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(writeAct, "Received!", Toast.LENGTH_LONG).show();
                    try {
                        JSONArray json = new JSONArray(strJson);
                        JSONObject jona = json.optJSONObject(Integer.parseInt("strJson"));
                        JSONObject title = new JSONObject(jona.getString("postTitle"));
                        JSONObject name = new JSONObject(jona.getString("postName"));
                        JSONObject content = new JSONObject(jona.getString("postContent"));
//                        for (int i = 0; i < jona.length(); i++)
//                        {
//                            JSONObject jsonObject = jona.getJSONObject(String.valueOf(i));
//                            titleList.add(jsonObject.getString("postTitle"));
//                            nameList.add(jsonObject.getString("postName"));
//                            contentList.add(jsonObject.getString("postContent"));
//                        }
                        writeAct.postResult.setText(""+title+"\n"+""+name+"\n"+""+content);


//                        writeAct.postResult.setText(json.toString());

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

        }
    }

 

큐더블유이알 (370 포인트) 님이 2019년 1월 3일 질문

1개의 답변

+1 추천
 
채택된 답변
결과값으로 넘어오는 strJson이 어떤형태로 넘어오는지 로그를 봐야 알 수 있을것같은데요. 오류로봐서는 strJson이 json배열이 아닌데 json배열로 받아서 convert 오류가 나는것 같은데요. json배열이 맞다면 주석처리하신 for루프를 통해 배열에서 키값을 통해 jsonObject를 각각 빼낼 수 있고 배열이 아니라면 서버에서 보낼 때 배열 형태로 보내주셔야 할 것 같습니다.
익명사용자 님이 2019년 1월 4일 답변
큐더블유이알님이 2019년 1월 8일 채택됨
...