如何在android中发布JSON String?

时间:2016-10-31 05:38:34

标签: android json api gson retrofit

我用这个答案,如何添加多列表数据。 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

1 个答案:

答案 0 :(得分:0)

试试这个

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