[解決済み] Android/JavaでのJSON配列の反復処理
2022-04-27 22:29:29
質問
私は、オンラインデータベースをダウンロードして同期する必要があるアンドロイドアプリを構築しています。私は、データベースからJSON形式で関連する行を返すPHPページにアプリからクエリを送信しています。
JSON配列を繰り返し処理する最良の方法を教えてください。
オブジェクトの配列を受け取りました。
[{json object},{json object},{json object}]
配列内のJSONObjectにアクセスするために使用できる最も簡単なコードは何ですか?
EDIT: 今思うと、私がループを反復するのに使ったメソッドは。
for (String row: json){
id = row.getInt("id");
name = row.getString("name");
password = row.getString("password");
}
つまり、私は返されたJsonを反復可能な配列に変えることができたのだと思います。どのように私はこれを達成することができます任意のアイデア?
私は私の曖昧さを謝罪しますが、私はウェブ上で見つけた例からこれを動作させたが、その後、それを見つけることができませんでした。
どのように解決するのですか?
私は2種類の方法で行いました。
1.) 地図を作成する
HashMap<String, String> applicationSettings = new HashMap<String,String>();
for(int i=0; i<settings.length(); i++){
String value = settings.getJSONObject(i).getString("value");
String name = settings.getJSONObject(i).getString("name");
applicationSettings.put(name, value);
}
2.) 名前のJSONArrayを作る
JSONArray names = json.names();
JSONArray values = json.toJSONArray(names);
for(int i=0; i<values.length(); i++){
if (names.getString(i).equals("description")){
setDescription(values.getString(i));
}
else if (names.getString(i).equals("expiryDate")){
String dateString = values.getString(i);
setExpiryDate(stringToDateHelper(dateString));
}
else if (names.getString(i).equals("id")){
setId(values.getLong(i));
}
else if (names.getString(i).equals("offerCode")){
setOfferCode(values.getString(i));
}
else if (names.getString(i).equals("startDate")){
String dateString = values.getString(i);
setStartDate(stringToDateHelper(dateString));
}
else if (names.getString(i).equals("title")){
setTitle(values.getString(i));
}
}
関連
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
Java Exceptionが発生しました エラー解決
-
サーブレットクラスのインスタンス化エラーの解決法
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
-
linux run jarfile Invalid or corrupt jarfile error.
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
このラインで複数のマーカーを解決する方法