2014-04-12 4 views
1

서버의 데이터를 공유 환경 설정에 저장하려고합니다. 서버로부터 데이터를 성공적으로 수신하고 있습니다. 하지만 공유 환경 설정에서 "이름"필드 만 저장할 수 있습니다. 나는 왜 다른 분야가 "First Name"처럼 저장되지 않는지 알지 못합니다. 여기 서버의 데이터가 공유 환경 설정에 저장되지 않음

은 JSON 응답입니다 : -

"driver_details":[{"id":"8","first_name":"john","Surname":"williams","unit_no":"2","street_name":"paris","Suburb":"Melbourne","State":"Victoria","post_code":"0","driving_lic":"12345","authority_id":"12345","mobile_no":"6348998575","Email":"[email protected]","password":"827ccb0eea8a706c4c34a16891f84e7b","date_of_creation":"2014-04-03 07:26:10","status":"0","login_token":"3cdLDObQhtFFoOVUX9MH","latitude":"","longitude":""}],"err-code":"0"} 

코드 공유 환경 설정을 저장 : -

    pref=getSharedPreferences("Users", MODE_WORLD_READABLE); 
        SharedPreferences.Editor edit=pref.edit(); 

        edit.putString("mfname", mfname); 
        edit.putString("msname", msname); 
        edit.putString("mun", mun); 
        edit.putString("mstreet", mstreet); 
        edit.putString("msuburb", msuburb); 
        edit.putString("mpassword", mpassword); 
        edit.putString("mpostcode", mpostcode); 
        edit.putString("mlicense", mlicense); 
        edit.putString("mid", mid); 
        edit.putString("mmobile", mmobile); 
        edit.putString("memail", memail); 
        edit.putString("login_token", login_token); 
        edit.commit(); 

사용자 (데이터) : -

<?xml version='1.0' encoding='utf-8' standalone='yes' ?> 
<map> 
    <null name="mmobile" /> 
    <null name="memail" /> 
    <null name="msname" /> 
    <string name="mfname">Abc</string> 
    <null name="mstreet" /> 
    <null name="mpostcode" /> 
    <null name="mlicense" /> 
    <null name="mid" /> 
    <null name="login_token" /> 
    <null name="mpassword" /> 
    <null name="mun" /> 
    <null name="msuburb" /> 
</map> 

구문 분석 코드 : -

  StringEntity se = new StringEntity(job.toString()); 

      HttpPost httppost = new HttpPost("http://abc/webservice.php"); 

      httppost.setEntity(se); 

      HttpResponse response = httpclient.execute(httppost); 
       String tmpString = EntityUtils.toString(response.getEntity()); 

       String data = tmpString.replace("yes",""); 
      System.out.println("response "+data); 


      JSONObject jo = new JSONObject(data); 

      Log.d("response", jo.toString(4)); 

      JSONArray jArray = jo.getJSONArray("driver_details"); 
      Log.d("Array", jArray.toString(4)); 


      for (int i=0; i < jArray.length(); i++) 
      { 
       System.out.println("please print my name...for...."); 
       try { 
       JSONObject jsob = jArray.getJSONObject(i); 

         mfname = jsob.getString("first_name"); 
         msname = jsob.getString("surname"); 
         mun = jsob.getString("unit_no"); 
         mstreet = jsob.getString("street_name"); 
         msuburb = jsob.getString("suburb"); 
         mstate = jsob.getString("state"); 
         mpassword = jsob.getString("password"); 
         mpostcode = jsob.getString("post_code"); 
         mlicense = jsob.getString("driving_license"); 
         mid = job.getString("authority_id"); 
         mmobile = jsob.getString("mobile_no"); 
         memail = jsob.getString("email"); 
         login_token=jsob.getString("login_token"); 

       } catch (JSONException e) { 

       } 
,451,515,
+0

파싱 코드를 공유 할 수 있습니까? –

+0

@FaisalAli 지금 확인하십시오 – WannaBeGeek

+0

JSONException 안에 e.printstacktrace를 추가 할 수 있습니까? 왜냐하면 대부분 그것은 잘못된 json 문제 때문입니다. – edisonthk

답변

2

이 줄은

msname = jsob.getString("surname"); 

JSON은 자본 S "Surname"하지 "surname"과 성 (姓)이 범인입니다. 키가 포함되어 있는지 잘 모르는 경우 optString()을 시도해 볼 수 있습니다. 그리고 인쇄하는 것을 잊지 마세요 exception

+2

과 JSON에는 "suburd"가 아닌 "Suburd"가 – edisonthk

+0

있지만이 행은 예외를 throw하므로 다른 행은 실행되지 않습니다. –

2

당신은 memail, mmobile, msname 등의 null 값을 얻고 있습니다.

sharedpreference에 저장하기 전에 로그의 모든 값을 인쇄 해보십시오.

관련 문제