2013-02-28 3 views
-4

Я разрабатываю простое приложение для входа. Моя веб-служба JSON возвращает имя пользователя. Вот форматирования кода JSON в:парсинг json webservices в android для моего формата

[{"demologin":{"username":"demoname","id":100}}] 

И вот мой код:

private class LongRunningGetIO extends AsyncTask <Void, Void, String> { 

    protected String getASCIIContentFromEntity(HttpEntity entity) throws IllegalStateException, IOException { 
     InputStream in = entity.getContent(); 
     StringBuffer out = new StringBuffer(); 
     int n = 1; 
     while (n>0) { 
      byte[] b = new byte[4096]; 
      n = in.read(b); 
      if (n>0) out.append(new String(b, 0, n)); 
     } 
     return out.toString(); 
    } 

    protected String doInBackground(Void... params) { 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpContext localContext = new BasicHttpContext(); 

     username=txtUserName.getText().toString(); 
     password=txtPassword.getText().toString(); 



     String url="MY URL HERE"; 
     HttpGet httpGet = new HttpGet(url); 

     String text = null; 
     String result = null; 
     String webusername=null; 
     int webuserid; 
     ArrayList<String> desc=new ArrayList<String>(); 

     try { 

       HttpResponse response = httpClient.execute(httpGet, localContext); 
       HttpEntity entity = response.getEntity(); 
       text = getASCIIContentFromEntity(entity); 



        JSONArray ja = new JSONArray(text) ; 
        // ITERATE THROUGH AND RETRIEVE CLUB FIELDS 
           int n = ja.length(); 
           for (int i = 0; i < n; i++) { 
            // GET INDIVIDUAL JSON OBJECT FROM JSON ARRAY 
           JSONObject jo = ja.getJSONObject(i); 

           webusername= jo.getString("demologin"); 
           webuserid= jo.getInt("id"); 

           } 
     } catch (Exception e) { 



        e.getLocalizedMessage(); 
        }  
     return webusername; 
    } 
    protected void onPostExecute(String results) { 
     if (results!=null) { 

      String sendusername=results; 
      Intent inte=new Intent(Login.this,FrontPage.class); 
      inte.putExtra("displayusername", sendusername); 
      startActivity(inte); 


     } 
     else 
      Toast.makeText(getApplicationContext(), "Invalid user", Toast.LENGTH_LONG).show(); 


     } 
} 

Проблема здесь состоит в том, что я понятия не имею, как получить имя пользователя в строку и передать его через Интернет. Кто-нибудь имеет представление о том, как это можно сделать?

+3

первым узнать о некоторых JSON. – QuokMoon

+0

см. Это. Это будет противоположно тому, что вы пытаетесь сделать. http://stackoverflow.com/questions/8706046/create-json-in-android –

ответ

0

Я думаю, что этот пост поможет, вот строка manupulation делается на строки, возвращаемой сюда в WSDL, вы можете использовать ту же строку раздвоение функцию, чтобы разделить ваши результаты process an array returned by web service

+0

Пожалуйста, прекратите создавать теги wikis для [неправильно написанных тегов] (http://stackoverflow.com/tags/druapl/info). Они будут удалены, и мы не хотим, чтобы люди их использовали. – Ben

+0

На самом деле, прекратите создавать теги wikis для несуществующих тегов. – Ben

+0

Хорошо, но было бы хорошо, если бы люди, получившие большую репутацию, удалили их. –

Смежные вопросы