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

안드로이드 json 파싱에 대해 질문 드립니다.

0 추천
<?php
 $connect = mysql_connect("localhost","cgyeol2","cks5753") or die(error());
 $mysql = mysql_select_db("cgyeol2",$connect);// or die(error());
 mysql_query("SET NAMES UTF8");
 $sql = "select * from ssq2013_01 where sqno=1";
 $rs = mysql_query($sql);
 while($result=mysql_fetch_array($rs))
 {
  $i=0;
  $question[$i] = $result[question];  
  echo "{QUESTION : $question[$i],";
  $select1[$i] = $result[select1];  
  echo "SELECT1 : $select1[$i]";
  $select2[$i] = $result[select2];  
  echo "SELECT2 : $select2[$i]";
  $select3[$i] = $result[select3];  
  echo "SELECT3 : $select3[$i]";
  $select4[$i] = $result[select4];  
  echo "SELECT4 : $select4[$i]}</br>";
  break;
 }
 mysql_close();
?>








package com.example.eipmasters;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

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

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;

@SuppressLint("NewApi")
public class javassq201301 extends Activity { 
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.ssq201301);
  
  StringBuilder sb = new StringBuilder();
  TextView questiontv = (TextView) findViewById(R.id.questiontv);
  Button select1bt = (Button) findViewById(R.id.select1bt);
  Button select2bt = (Button) findViewById(R.id.select2bt);
  Button select3bt = (Button) findViewById(R.id.select3bt);
  Button select4bt = (Button) findViewById(R.id.select4bt);
  
  try {
   URL url = new URL("http://cgyeol2.woobi.co.kr/test.php");
   HttpURLConnection conn = (HttpURLConnection) url.openConnection();

   if (conn != null) {
    conn.setConnectTimeout(10000);
    conn.setUseCaches(false);
    questiontv.setText(String.valueOf(conn.getResponseCode()) + "\n" + String.valueOf(HttpURLConnection.HTTP_OK));
 
    if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
     BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  
     while (true) {
      String line = br.readLine();
   
      if (line == null) {
       break;
      }
   
      sb.append(line + "\n");
     }
     br.close();                             
    } 
 
    else{
     questiontv.setText("http_not");
    }
 
    conn.disconnect();
   }
  } 

  catch (Exception e){
   questiontv.setText(e.toString());   
  }
  
  String jsonString = sb.toString();
  
  try {
   String res = "";   
   JSONArray ja = new JSONArray(jsonString);
   
   JSONObject jo = ja.getJSONObject(0); //결과물     
   res=jo.getString("question") + " ";   questiontv.setText(res);
   res=jo.getString("select1") + " ";   select1bt.setText(res);
   res=jo.getString("select2") + " ";   select2bt.setText(res);
   res=jo.getString("select3") + " ";   select3bt.setText(res);
   res=jo.getString("select4") + " ";   select4bt.setText(res);
  } 
  
  catch (JSONException e) {
   // TODO Auto-generated catch block
   questiontv.setText(e.toString());
  }
  
 } 
}
  
  
  
 
 

1달 전부터 구글링으로 이것 저것 훔쳐 보면서 json 파싱 공부를 하고 있습니다.

End of input at character 0 of 이 에러가 나옵니다.

인터넷 찾아보니 값이 저장이 되기전에 연산이 되어서 이런 오류가 뜬다는 것은 알았는데 이론적으로 이해가 안되네요ㅠ

이해도 안되고 오류를 어떻게 수정해야 될지 몰라 3일째 끙끙대고 있습니다ㅠ

고수님들의 조언이 필요합니다ㅠㅠ 어떻게 하면 오류가 수정 가능할지 자세히좀 알려주시면 감사하겠습니다 ㅠㅠ

 

 

gyeol2hi (120 포인트) 님이 2014년 10월 13일 질문
gyeol2hi님이 2014년 10월 14일 수정

1개의 답변

+1 추천
  1. php 에서 json 을 저리 만드는거 아닙니다. 함수를 이용해서 생성하세요 - http://php.net/manual/en/function.json-encode.php
  2. json 스팩을 먼저 보세요 array 는 [] 로 구성 됩니다. - http://tools.ietf.org/html/rfc7159
aucd29 (218,390 포인트) 님이 2014년 10월 14일 답변
...