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

Jsonobject 객체 사용 질문드립니다.

0 추천
매우 초보라 Jsonobject에 대해서 이해가 가질 않아서 질문드립니다..

 

  JSONArray jArr = new JSONArray(jsonHtml.toString());
                        for (int i = 0; i < jArr.length(); i++) {
                            JSONObject jObj = jArr.getJSONObject(i);
                           /* result += String
                                    .format("글제목 : %s \n 내용 ; %s \n 작성자 : %s \n\n",
                                            jObj.getString("bbs_name"),
                                            jObj.getString("bbs_content"),
                                            jObj.getString("bbs_writer"));*/

                            result += "bbs_name: " + jObj.getString("bbs_name") + ", bbs_content: " + jObj.getString("bbs_content") + ", bbs_writer: " + jObj.getString("bbs_writer")+
                                    ", bbs_loc: " + jObj.getInt("bbs_loc") + "\n";
                        }

 

이렇게 json 데이터를 jsonobject 객체에 넣는 과정을 하고 나면..

result는 json 데이터가 저장된 배열이라고 볼 수 있나요..??

제가 하려는게 mysql에서 json으로 파싱해 jsonobject를 만들고.. 거기에 데이터를 다 집어넣은 다음에

제가 입력하는 "글제목"으로 가져온 데이터중에 있는지 확인하려는 걸 만들고 있거든요. 저 위에 소스대로 하면 mysql에 있는 데이터들을 다 불러오는 것 까진 성공했는데. 저렇게 가져온 데이터가 jObj 안에 계속 저장되어 있는건가요?

질문이 너무 이상해서.. 지적해주시면 그 부분 다시 말씀드릴게요..!
허밍 (220 포인트) 님이 2015년 11월 6일 질문

2개의 답변

+1 추천
음..

jObj 변수 안에 값은

지금 저코드만 봤을땐 저장안되어 있을꺼같네요

for 문 안에서 만드시는건 for 문 끝나면 없는거라 생각하는게 편합니다.

정확한건 아니지만;

일단 jObj 변수들을 배열로 만들거나 리스트처럼 만들려면

ArrayList<JSONObject> 등으로 필드변수를 만드셔서 하나하나 for문 돌릴때마다 리스트에 add 하는 식으로 하시는게 제일 구식이지만 쉬운 방법입니다.
익명사용자 님이 2015년 11월 6일 답변
아하!
모르는 용어 뿐이라 질문이 정말 뒤죽박죽인데 원하는 부분을 딱 말씀해주셔서 감사합니다 ㅜㅜ
0 추천

아래와 같은걸 원하시는건가요?

 

boolean bFind = false;

 

  JSONArray jArr = new JSONArray(jsonHtml.toString()); 

 // JSON 문자열을 파싱해서 JSONArray객체로 만들어라.


 for (int i = 0; i < jArr.length(); i++) {  // 파싱된 JSONArray 객체(배열)의 갯수만큼 돌아라
          JSONObject jObj = jArr.getJSONObject(i);  // 배열에서 인덱스에 맞는 객체를 얻어와라
          

         String str = jObj.getString("bbs_name");

 

       //찾고자 하는 제목과 동일한 문자열이라면 루프를 빠져나간다

         if(str != null && str.equals("내가 찾는 제목")) {    

                bFind = true;

                break;

         }

 }

 

if(bFind) {  //제목을 찾았다면.

    // i번째에 해당 데이터가 있음.....이걸로 무엇을 할건지?

}

바램 (19,650 포인트) 님이 2015년 11월 6일 답변
아, 네 ㅠㅠ 제가 바라고 있던 부분을 써주셨네요 덜덜덜..
그 뒤로 어떻게 해야할까 고민하고 있었는데 이렇게 적어주셔서 감사합니다!
...