[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
2022-07-20 12:03:38
質問
私はListViewのArrayAdapter内で使用するArrayListを持っています。 私はリスト内のアイテムを取得し、APIに送信するためにJSONArrayに変換する必要があります。私は周りを探しましたが、これがどのように動作するかを説明するものは何も見つかりませんでした、どんな助けでも感謝します。
更新 - 解決
以下は、この問題を解決するために私が最終的に行ったことです。
ArrayListの中のオブジェクト。
public class ListItem {
private long _masterId;
private String _name;
private long _category;
public ListItem(long masterId, String name, long category) {
_masterId = masterId;
_name = name;
_category = category;
}
public JSONObject getJSONObject() {
JSONObject obj = new JSONObject();
try {
obj.put("Id", _masterId);
obj.put("Name", _name);
obj.put("Category", _category);
} catch (JSONException e) {
trace("DefaultListItem.toString JSONException: "+e.getMessage());
}
return obj;
}
}
以下、変換してみました。
ArrayList<ListItem> myCustomList = .... // list filled with objects
JSONArray jsonArray = new JSONArray();
for (int i=0; i < myCustomList.size(); i++) {
jsonArray.put(myCustomList.get(i).getJSONObject());
}
そして、その出力。
[{"Name":"Name 1","Id":0,"Category":"category 1"},{"Name":"Name 2","Id":1,"Category":"category 2"},{"Name":"Name 3","Id":2,"Category":"category 3"}]
これがいつの日か誰かの役に立つことを願っています
どのように解決するのですか?
JSONArrayのコンストラクタを正しく読むと、このように任意のCollection(arrayListはCollectionのサブクラス)から構築することができます。
ArrayList<String> list = new ArrayList<String>();
list.add("foo");
list.add("baar");
JSONArray jsArray = new JSONArray(list);
参考文献
関連
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] ArrayListの初期化を1行で行う。
-
[解決済み] jQueryでフォームデータをJavaScriptオブジェクトに変換する
-
[解決済み] JSオブジェクトをJSON文字列に変換する
-
[解決済み] Javaで「ArrayList<String>」を「String[]」に変換する。
-
[解決済み] ArrayListの最後の値を取得する方法
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] WhatsAppでメッセージを送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プログラム的に電話をかけるには?
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] Android Studioの「未実装メソッドの追加」機能
-
[解決済み] Android - Snackbar vs Toast - 使い方と違い。
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] 開発者コンソールでのベータ版/アルファ版テストについての説明が必要です。
-
[解決済み] BackStackでFragment Animationを逆再生するには?