ウェブサイトからJSONを取得し、Androidアプリで解析しようとしています。これは、バックエンドによって生成される自動JSONです。
アップロードされた画像が1つしかない場合は常に、配列なしで画像のリンクを取得しています。それは単一の文字列です。
ただし、複数の画像がアップロードされた場合は、それらを配列内に取得します(以下のJSONを参照)(使用していないものをいくつか削除したため、JSONは無効です)
{
"Reports": [
{
"News": {
"Title": "Big Explosion",
"Info": "Lorem ipsum news etc here get here etc",
"field_image": "http://mysite.com/1.jpg"
}
},
{
"News": {
"Title": "2nd explosion",
"Info": "<p>Us a delimited list ws etc here get her</p>\n",
"field_image": [
"http://mysite.com/2.jpg",
"http://mysite.com/3.jpg",
"http://mysite.com/4.jpg"
]
}
]
}
JSONを取得するために以下のコードを使用しています。ただし、複数の画像がある場合、各文字列を単独で取得することはできません。
JSONObject json = jParser.getJSONFromUrl(url);
if (json != null)
{
JSONArray ReportsJsonArray = json.getJSONArray("Reports");
for (int i = 0; i < ReportsJsonArray.length(); i++)
{
JSONObject c = ReportsJsonArray .getJSONObject(i);
JSONObject news= node.getJSONObject("News");
String title = node.getString("Title");
String info = node.getString("Info");
String fieldImage = node.getString("fieldimage");
if (fieldImage.charAt(0) == '[')
{
Log.i("tag", "more than 1 image");
// HOW TO GET THEM
} else
{
Log.i("tag", "single image");
//already have them
}
}
私のコードは機能しますが、配列全体を単一の文字列として取得します。(コードを単純化するために、try-catchブロックを省略しました)。