private void showResult(){
try {
Log.w("2",myJson);
JSONObject jsonObj = null;
jsonObj= new JSONObject(myJson);
Log.i("test",myJson);
JSONArray jsonArray = jsonObj.getJSONArray(TAG_JSON);
for(int i=0;i<jsonArray.length();i++){
JSONObject item = jsonArray.getJSONObject(i);
String name = item.getString(TAG_NAME);
String brand = item.getString(TAG_BRAND);
String cat = item.getString(TAG_CAT);
HashMap<String,String> hashMap = new HashMap<>();
hashMap.put(TAG_NAME, name);
hashMap.put(TAG_BRAND, brand);
hashMap.put(TAG_CAT, cat);
mArrayList.add(hashMap);
}
ListAdapter adapter = new SimpleAdapter(
MainActivity.this, mArrayList, R.layout.item_list,
new String[]{TAG_NAME, TAG_BRAND, TAG_CAT},
new int[]{R.id.list_name, R.id.list_brand , R.id.list_cat}
);
mListViewList.setAdapter(adapter);
지금 외부 db를 안드로이드와 php로 연결하여 키워드 검색 기능을 구현하려고 합니다.
그런데 키워드를 보낸 후 , JSON데이터가 String까지는 잘 넘어오고 Textview에는 제가 원하는 JSON데이터가 제대로 출력되는데
showResult에서 파싱해서 listview에 보이게 만드려고 하는데 여기서부터가 문제입니다.
2019-05-07 23:50:11.040 3007-3007/com.example.myapplication W/2: { "result": [ { "name": "토탈리페어5 인스턴트 미라클170ml", "brand": "로레알 파리", "cat": "헤어,바디" } ]}
2019-05-07 23:50:11.044 3007-3007/com.example.myapplication D/phpquerytest: showResult :
org.json.JSONException: Value of type java.lang.String cannot be converted to JSONObject
at org.json.JSON.typeMismatch(JSON.java:112)
at org.json.JSONObject.<init>(JSONObject.java:163)
at org.json.JSONObject.<init>(JSONObject.java:176)
at com.example.myapplication.MainActivity.showResult(MainActivity.java:189)
at com.example.myapplication.MainActivity.access$300(MainActivity.java:33)
at com.example.myapplication.MainActivity$GetData.onPostExecute(MainActivity.java:111)
at com.example.myapplication.MainActivity$GetData.onPostExecute(MainActivity.java:82)
at android.os.AsyncTask.finish(AsyncTask.java:695)
at android.os.AsyncTask.access$600(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2019-05-07 23:50:11.048 3007-3078/com.example.myapplication D/EGL_emulation: eglMakeCurrent: 0xd60fd5a0: ver 3 0 (tinfo 0xeccd2e80)
로그캣이 뜨는데 분명 파싱 직전까지는 myJson에 문제없이 저장되어 있는데
String cannot be converted to JSONObject문제가 생깁니다.
php코드에도 문제 없고 자바 코드 상에는 오류가 없는 거 같은데 왜 그럴까요ㅠ