こんにちは、私はアンドロイドを学び、現在、私の残りのPOSTとGET要求に1.9を実装すると、誰かが与えられたjsonオブジェクトと文字列をモデル化する方法を教えてくれますか?イム非常に混乱し、私は、このJSONオブジェクトオブジェクトAndroid Retrofit POJOモデル
ため{
"contacts": [
{
"id": "c200",
"name": "Ravi Tamada",
"email": "[email protected]",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
},
{
"id": "c201",
"name": "Johnny Depp",
"email": "[email protected]",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
}
}}]}
このモデルを使用
Contacts.class
public class Contacts {
@SerializedName("contacts")
@Expose
private List<Contact> contacts = new ArrayList<Contact>();
public List<Contact> getContacts() {
return contacts;
}
public void setContacts(List<Contact> contacts) {
this.contacts = contacts;
}
とContact.classのためのPOJOを作る方法を学びましたいくつかのチュートリアルで
public class Contact {
@SerializedName("id")
@Expose
private String id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("email")
@Expose
private String email;
@SerializedName("address")
@Expose
private String address;
@SerializedName("gender")
@Expose
private String gender;
public String getId() {return id;}
public void setId(String id) {this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getEmail() {return email;}
public void setEmail(String email) {this.email = email;}
public String getAddress() {return address;}
public void setAddress(String address) {this.address = address;}
public String getGender() {return gender;}
public void setGender(String gender) {this.gender = gender;}}
MainActivity.classでこれを使用してリストを呼び出す
private void getContacts() {
final ProgressDialog loading = ProgressDialog.show(this, "Fetching Data", "Please wait...", false, false);
RestAdapter adapter = new RestAdapter.Builder().setEndpoint(ROOT_URL).build();
ContactsAPI api = adapter.create(ContactsAPI.class);
api.getContacts(new Callback<Contacts>() {
@Override
public void success(Contacts contacts, Response response) {
loading.dismiss();
List<Contact> contactList = contacts.getContacts();
String[] items = new String[contactList.size()];
for (int i = 0; i < contactList.size(); i++) {
items[i] = contactList.get(i).getName();
}
ArrayAdapter adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.simple_list,R.id.textview, items);
//Setting adapter to listviesw
listView.setAdapter(adapter);
}
@Override
public void failure(RetrofitError error) {
}
});
}
THEN私の質問は、この配列オブジェクトからモデルを作成する方法ですか?
{
"-KNea90tV5nZlkeqxc3Q": {
"accountName": "Mark Papyrus",
"accountNumber": "12435656443",
"accountType": "Peso Savings"
},
"-KNeaPmBoTXV4mQC6cia": {
"accountName": "Mark Dremeur",
"accountNumber": "12435656444",
"accountType": "Peso Checking"
}
私はモデルや与えられたJSONアレイPLSの違いは私に感謝を導くようにする方法、それは混乱しました。
はここprotipだ - 例えばhttp://www.jsonschema2pojo.org/使用してそれを生成します。 – Shark
@シャーク - 実際にはそれを実行しましたが、私の問題はjsonキーです。この "-KNea90tV5nZlkeqxc3Q"のようにランダムに生成されますので、定数を – user3262438
にすることはできません。私はそれが悪いと言っているのは、モデルクラスがすべてのランダムな値を含み、あなたがチェックするものを知らずにそれらのうちの1つだけに値を割り当てることになるからです...バックエンドチームと話をして、 。 – Shark