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

JSON 파싱 질문입니다.

0 추천
E/JSONParseEmployeeInfo(11879): JSON 파싱 에러
E/JSONParseEmployeeInfo(11879): org.json.JSONException: End of input at character 0 of 
 
E/JSONParseEmployeeInfo(11879): at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
E/JSONParseEmployeeInfo(11879): at org.json.JSONTokener.nextValue(JSONTokener.java:97)
E/JSONParseEmployeeInfo(11879): at org.json.JSONObject.<init>(JSONObject.java:154)
E/JSONParseEmployeeInfo(11879): at org.json.JSONObject.<init>(JSONObject.java:171)
 
E/JSONParseEmployeeInfo(11879): at kr.co.tms.network.JSONParseHandler$JSONParseEmployeeInfo.getData(JSONParseHandler.java:34)
E/JSONParseEmployeeInfo(11879): at kr.co.tms.network.request.EmployeeInfoRequest.parsing(EmployeeInfoRequest.java:116)
E/JSONParseEmployeeInfo(11879): at kr.co.tms.network.NetworkRequest.process(NetworkRequest.java:76)
E/JSONParseEmployeeInfo(11879): at kr.co.tms.network.NetworkModel$1.run(NetworkModel.java:103)
E/JSONParseEmployeeInfo(11879): at java.lang.Thread.run(Thread.java:856)
 
W/NetworkModel(11879): InputStream close kr.co.tms.network.NetworkModel$1@416825d8
W/NetworkModel(11879): OutputStream close kr.co.tms.network.NetworkModel$1@416825d8
W/NetworkModel(11879): HttpURLConnection disconnect() call kr.co.tms.network.NetworkModel$1@416825d8
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
public class JSONParseHandler {
	private static final String TAG = "JSONParseHandler";

	public static class JSONParseEmployeeInfo {
		private static final String TAG = "JSONParseEmployeeInfo";

		public JSONParseEmployeeInfo() {
		}

		public static EmployeeInfoEntityObject getData(StringBuilder buf) {
			Log.i(TAG, "getData()");

			EmployeeInfoEntityObject entity = EmployeeInfoEntityObject
					.getInstance();

			try {
				JSONObject jData = new JSONObject(buf.toString());

				entity.error = jData.getString("error");
				entity.name = jData.getString("name");
				entity.dpt = jData.getString("dpt");
				entity.pst = jData.getString("pst");
				entity.intr1 = jData.getString("intr1");
				entity.intr2 = jData.getString("intr2");
				entity.intr3 = jData.getString("intr3");

			} catch (JSONException je) {
				Log.e(TAG, "JSON 파싱 에러", je);
			}

			return entity; // 값이 채워진 Entity 객체 리턴
		}

	}
}

이 부분이 JSON 부분입니다. 밑줄 부분이 로그 클릭하면 이동되는 부분이에요 ㅠㅠ 도와주세요...

사자87 (240 포인트) 님이 2014년 1월 3일 질문

3개의 답변

0 추천

json 데이터를 받아오기전에 JsonParser 가 실행되어

데이터가 없는 상태가 아닌지 확인하시고

AsyncTask를 사용하신다면 파싱하는 부분은 

doInBackground() 쪽으로 처리하셔야 할꺼같네요~

안드로금메달 (160 포인트) 님이 2014년 1월 3일 답변
0 추천

entity.error = jData.getString("error");

entity.name = jData.getString("name");
entity.dpt = jData.getString("dpt");
entity.pst = jData.getString("pst");
entity.intr1 = jData.getString("intr1");
entity.intr2 = jData.getString("intr2");
entity.intr3 = jData.getString("intr3");
 
데이터가 들어잇는지 확인은 해보셧나요?
mamongs (4,050 포인트) 님이 2014년 1월 3일 답변
감사합니다 ^^
데이타 전달 관련된 문제였네요!
0 추천

 org.json.JSONException: End of input at character 0

요놈의 에러를 보셔야 합니다.

에러를 보시면 아시겠지만 파싱할 스트링에 아무런 데이터가 들어있지 않다는 말입니다.

즉 웹페이지 자체가 비어있는 상태 입니다.

웹 소스를 확인 해 주세요~~!

ThisPlus (46,920 포인트) 님이 2014년 1월 3일 답변
감사합니다 ^^
웹페이지 문제는 아니었지만, 중간에 GET 설정과 POST가 조금 잘못사용된 부분이 있었네요!
...