2016-10-31 1 views
0

Я использую этот ответ, как добавить данные нескольких списков. How Lists (specifically, RecyclerView with CardViews) in Android work. Мне нужно отправить JSON String в api. Но я не могу получить JSON String (Имя пользователя) из User Object. Как получить имя пользователя из объекта DeliveryStaff> Пользовательский объект> Имя пользователя. Он говорит, что требуется имя пользователя. Потому что я отправляю myList является объектом пользователя. Когда я запишу его, отображается объект пользователя. Но я не могу получить имя пользователя.Как разместить JSON String в android?

DeliveryStaff.java

[ 
     { 
     "id": 30, 
     "user_id": "292", 
     ... etc 
     "user": { 
      "id": 292, 
      "name": "Peter", 
      ... etc 
     } 
     }, 
     { 
     "id": 51, 
     "user_id": "256", 
     ... etc 
     "user": { 
      "id": 256, 
      "name": "Jhon Staff", 
      ... etc 
     } 
     } 
    ] 

ChooseMultiStaff.java

ArrayList<DeliveryStaff> myList = new ArrayList<DeliveryStaff>(); 
lvList = (ListView) findViewById(R.id.lvList); 
multiStaffListAdapter = new multiStaffListAdapter(ChooseMultiStaff.this, myList); 
lvList.setAdapter(multiListAdapter); 

// add function 
// multiDeliveryStaffList - come from staff spinner onItemSelected (DeliveryStaff multiDeliveryStaffList = (DeliveryStaff) parent.getAdapter().getItem(position);) 

DeliveryStaff mLog = new DeliveryStaff(); 
mLog.setUser(multiDeliveryStaffList.getUser()); 
myList.add(mLog); 
multiListAdapter.notifyDataSetChanged(); 

// post function 

private void PostAddStaff() { 
ArrayList<DeliveryStaff> uploadMultiDeliverStaff = new ArrayList<DeliveryStaff>(); 
for (DeliveryStaff dsl : myList) { 
if (dsl.getId() == null) { 
uploadMultiDeliverStaff.add(dsl); 
} 
} 

Log.i("List", new Gson().toJson(myList)); 
NetworkEngine.getInstance().postAddStaff(new Gson().toJson(myList), txt_date_time_display.getText().toString(), new Callback<JsonObject>() { 
@Override 
public void success(JsonObject jsonObject, Response response) { 
// finish - done 
}   
}); 
} 

@FormUrlEncoded 
@POST("/api/addstaffs") 
void postAddStaff(
@Field("json") String json, 
@Field("pick_up_time") String pick_up_time, 
Callback<JsonObject> callback); 


staffname ["51","56"] 
    pick_up_time 2016-10-31 12:04 
+0

_But Я не могу получить Name._ пользователя Почему нет? Есть ли ошибка? –

+0

Он возвращает объект пользователя. Я не могу получить имя пользователя из пользовательского объекта. –

+0

Показать свой пользовательский класс. –

ответ

0

Попробуйте

JsonObject obj = YOURJSON.getJSONObject(0); 
String name = obj.getJSONObject(user).getString(name); 
+0

Где мне нужно изменить. Пожалуйста, сэр –

+0

вы печатаете json, назначаете его jsonObject или JsonArray. Log.i («Список», новый Gson(). ToJson (myList)); – Shahal

+0

'JsonArray array = new Gson(). ToJson (myList);' – Shahal

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