2016-02-16 1 views
0

Мой вопрос: у меня есть объект Json под названием name в Rest Api. Мне нужно получить его и отобразить в моем приложении в поле textView15 после входа/регистрации. Я понятия не имею о том, как выбрать и показать Json. Любая помощь будет заметна.Android-код для извлечения объекта Json и отображения

АФИ:

{ 
    "users": { 
    "_id": "gcx8ksa4XepvYRyWH", 
    "emails": [ 
     { 
     "address": "[email protected]", 
     "verified": false 
     } 
    ] 
    }, 
    "user": { 
    "_id": "wWHmKn5ciWAHZGt2m", 
    "user_id": "gcx8ksa4XepvYRyWH", 
    "name": "[email protected]", 
    "hubs": [], 
    "username": "selenium", 
    "industry": "selenium", 
    "profession": "selenium" 
    } 
} 

Мой код:

AsyncHttpClient client = new AsyncHttpClient(); 
     applyJobItems.clear(); 
     List<String> userCredentials = UserUtils.getLoginDetails(); 
     client.addHeader("x-user-id", userCredentials.get(0)); 
     client.addHeader("x-auth-token", userCredentials.get(1)); 
     client.get("https://", new AsyncHttpResponseHandler() { 
      @Override 
      public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 

       final String response = new String(responseBody); 
       android.util.Log.e("Response", "" + response); 

       try { 
        JSONObject jsonObject = new JSONObject(response); 
        final JSONArray jsonArray = jsonObject.getJSONArray("user"); 


        final List<String> names = new ArrayList<String>(); 
        for (int i = 0; i < jsonArray.length(); i++) { 
         JSONObject inter = new JSONObject(jsonArray.get(i).toString()); 
         ApplyJobItem jobItem = new ApplyJobItem(); 
         jobItem.setName(inter.getString("name")); 
         names.add(inter.getString("name")); 
         applyJobItems.add(jobItem); 
         android.util.Log.e("name", inter.getString("name")); 
        } 
       }catch (Exception e) { 
         e.printStackTrace(); 
        } 
+0

Пут, что вы пытались в своем коде и затем задавать вопросы в противном случае он будет отвергать. – Ajinkya

+0

использование волейбольной библиотеки –

ответ

1

Возьмите этот JSON в JSONObject переменной в андроида и разобрать его, как

String name = jsonObject.getJSONObject('user').getString('name'); 

здесь jsonObject это имя главного объекта JSon вы получили от сервера ..

Edit: JSon Разбор учебников.

вот некоторые руководство как разобрать JSON

http://www.androidhive.info/2012/01/android-json-parsing-tutorial/

1

Вы можете легко извлечь данные и визуализации в поле зрения, используя залп, как следовать ...

После входа в этот код, чтобы получить выполнен ...

List<Users> list = new ArratList<Users>(); 
CustomUserAdapter adapter; 
JsonArrayRequest getJsonData = new JsonArrayRequest("<your_url>, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        for (int i = 0; i < response.length(); i++) { 
         try { 
          Users mList = new Users(); 

          JSONObject obj = response.getJSONObject(i); 

          JSONArray answers = obj.getJSONArray("emails"); 

          long count = answers.length(); 
          if(count > 0){ 
           //setter methods 
          } 

          mList.setIDL(obj.getString("_id")); 
          list.add(mList); 

         } catch (JSONException e) { 
          Log.d("JSONError", e.toString()); 
         } 

        } 
        adapter.notifyDataSetChanged(); 
        //your listview findViewById()..... 
        listView.setVisibility(View.VISIBLE); 

       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d(TAG, "Error: " + error.getMessage()); 
      Toast.makeText(getApplicationContext(),"Error in fetchinf data",Toast.LENGTH_LONG).show(); 

     } 
    }); 

    AppController.getInstance().addToRequestQueue(getJsonData); 

Ap классу конфигурации р для залпа (нужно добавить залп библиотеки)

Узнайте больше о залпе Get Volley

public class AppController extends Application { 

public static final String TAG = AppController.class.getSimpleName(); 

private RequestQueue mRequestQueue; 
private ImageLoader mImageLoader; 

private static AppController mInstance; 

@Override 
public void onCreate() { 
    super.onCreate(); 
    mInstance = this; 
} 

public static synchronized AppController getInstance() { 
    return mInstance; 
} 

public RequestQueue getRequestQueue() { 
    if (mRequestQueue == null) { 
     mRequestQueue = Volley.newRequestQueue(getApplicationContext()); 
    } 

    return mRequestQueue; 
} 

public ImageLoader getImageLoader() { 
    getRequestQueue(); 
    if (mImageLoader == null) { 
     mImageLoader = new ImageLoader(this.mRequestQueue, 
       new LruBitmapCache()); 
    } 
    return this.mImageLoader; 
} 

public <T> void addToRequestQueue(Request<T> req, String tag) { 

    req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); 
    getRequestQueue().add(req); 
} 

public <T> void addToRequestQueue(Request<T> req) { 
    req.setTag(TAG); 
    getRequestQueue().add(req); 
} 

public void cancelPendingRequests(Object tag) { 
    if (mRequestQueue != null) { 
     mRequestQueue.cancelAll(tag); 
    } 
} 

}

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