mysql 값을 json파싱해 ListView에 넣을때 json 오류 여쭈어봅니다!!

조회수 647회

안녕하세요

제가 여쭈어보고싶은건

일단 다른 액티비티에서 리스트뷰에넣을 디비값을 연결하는건 성공한 상태입니다.

그리고 리스트뷰도 임시적으로 값을 넣어서 실행해보니 리스트뷰에도 문제가 없습니다.

그런데 리스트뷰에 intent로 가져온 db값을 json으로 파싱해서 채워넣어 출력하려고하니 밑에 로그와 같은 오류들이 뜹니다.

json도 많이 검색해보고 log도 검색해봤는데 명쾌한 대답이 안나오네요

솔직하게 json에 대해서 지금 많이 급하고 이래서 완벽한 개념을 공부하기에는 시간도 능력도 조금 부족한 상태라 질문 올립니다.

//여기에 코드를 입력하세요
package com.example.kimgyuback.cat;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class AnimalBoardActivity extends AppCompatActivity {

    private ListView listView;
    private AnimalListAdapter adapter;
    private List<Animal> animalList;

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

        final Button PacelOut = (Button)findViewById(R.id.PacelInput);
        PacelOut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), PacelInput.class);
                startActivity(intent);
            }
        });

        Intent intent = getIntent();

        listView = (ListView)findViewById(R.id.listView);
        animalList = new ArrayList<Animal>();

        adapter = new AnimalListAdapter(getApplicationContext(), animalList);
        listView.setAdapter(adapter);

        try{
            JSONObject jsonObject = new JSONObject(intent.getStringExtra("animalList"));
            JSONArray jsonArray = jsonObject.getJSONArray("response");
            int count = 0;
            String animalkind, animalage, animalkg, animalinoculation, animalintroduction;
            while (count < jsonArray.length())
            {
                JSONObject object = jsonArray.getJSONObject(count);
                animalkind = object.getString("kind");
                animalage = object.getString("age");
                animalkg = object.getString("kg");
                animalinoculation = object.getString("inoculation");
                animalintroduction = object.getString("introduction");
                Animal animal = new Animal(animalkind, animalage, animalkg, animalinoculation, animalintroduction);
                animalList.add(animal);
                count++;
            }
        }catch (Exception e){
            e.printStackTrace();
        }


    }

}

//로그 부분
06-11 11:34:53.350 5097-5097/com.example.kimgyuback.cat W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
06-11 11:34:53.350 5097-5097/com.example.kimgyuback.cat W/System.err:     at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
06-11 11:34:53.350 5097-5097/com.example.kimgyuback.cat W/System.err:     at org.json.JSONTokener.nextValue(JSONTokener.java:94)
06-11 11:34:53.351 5097-5097/com.example.kimgyuback.cat W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:159)
06-11 11:34:53.351 5097-5097/com.example.kimgyuback.cat W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:176)
06-11 11:34:53.351 5097-5097/com.example.kimgyuback.cat W/System.err:     at com.example.kimgyuback.cat.AnimalBoardActivity.onCreate(AnimalBoardActivity.java:49)
06-11 11:34:53.351 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.app.Activity.performCreate(Activity.java:6975)
06-11 11:34:53.351 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
06-11 11:34:53.352 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
06-11 11:34:53.352 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
06-11 11:34:53.352 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.app.ActivityThread.-wrap11(Unknown Source:0)
06-11 11:34:53.352 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
06-11 11:34:53.352 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:105)
06-11 11:34:53.352 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.os.Looper.loop(Looper.java:164)
06-11 11:34:53.352 5097-5097/com.example.kimgyuback.cat W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6541)
06-11 11:34:53.352 5097-5097/com.example.kimgyuback.cat W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
06-11 11:34:53.353 5097-5097/com.example.kimgyuback.cat W/System.err:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
06-11 11:34:53.353 5097-5097/com.example.kimgyuback.cat W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
  • json 데이터를 올려주시면 문제 분석에 도움이 될것 같습니다. 그리고 Gson library 를 써보시는걸 추천드립니다 pistolcaffe 2018.6.12 10:47

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.