我用这个答案,如何添加多列表数据。 How Lists (specifically, RecyclerView with CardViews) in Android work。我需要将JSON字符串发布到api。但我无法从用户对象获取JSON字符串(用户名)。如何从DeliveryStaff对象获取用户名>用户对象>用户名。它说用户名是必需的。因为我发布 myList 是用户对象。当我记录它时,显示用户对象。但我无法获得用户名。
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 :(得分:0)
试试这个
JsonObject obj = YOURJSON.getJSONObject(0);
String name = obj.getJSONObject(user).getString(name);