2016-10-31 3 views
0

私はこの回答を使用して、マルチリストデータを追加する方法を説明します。 How Lists (specifically, RecyclerView with CardViews) in Android work。私はAPIにJSON Stringをポストする必要があります。しかし、ユーザーオブジェクトからJSON文字列(ユーザー名)を取得することはできません。 DeliveryStaffオブジェクト>ユーザオブジェクト>ユーザ名からユーザ名を取得する方法。それはユーザー名が必要だと言う。私はmyListを投稿するので、ユーザーオブジェクトです。ログに記録すると、ユーザーオブジェクトが表示されます。しかし、私はユーザー名を取得することはできません。JSON Stringをアンドロイドに投稿するには?

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

ユーザーオブジェクトを返します。ユーザーオブジェクトからユーザー名を取得できません。 –

+0

ユーザー層を表示してください。 –

答えて

0

私はユーザーName._なぜを取得することはできません_Butこの

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

ここで、私は変更が必要です。 –

+0

jsonを印刷していて、それをjsonObjectまたはJsonArrayに割り当ててください。 Log.i( "List"、新しいGson()。toJson(myList)); – Shahal

+0

'JsonArray配列=新しいGson()。toJson(myList);' – Shahal

関連する問題