選択エントリが表示される回数を取得する次のコードがあります。
int k = 0;
int j = 0;
try {
jsonArray = new JSONArray(result);
for(int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObj = (JSONObject)jsonArray.get(i); // get the josn object
if(jsonObj.getString("type").equals("image")) { // compare for the key-value
k++;
}
if(jsonObj.getString("type").equals("text")) { // compare for the key-value
j++;
}
}
Toast.makeText(getApplicationContext(), String.valueOf(k), 2000).show();
Toast.makeText(getApplicationContext(), String.valueOf(j), 2000).show();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
私のJSONファイルは次のとおりです。
[
{
"id": "12",
"type": "text",
"data": "This is a test"
},
{
"id": "5465465",
"type": "image",
"data": "http://pagesbyz.com/theImages/gallery/portfolio_app07.png"
},
{
"id": "982",
"type": "text",
"data": "THIS IS A TEST TEXT"
},
{
"id": "5500",
"type": "text",
"data": "http://pagesbyz.com/theImages/gallery/portfolio_app03.png"
}
]
だから...k = 1
そしてj = 3
一致したエントリの配列全体を取得するにはどうすればよいですか?
たとえば、型が等しいimage
と、情報を保持するために配列を設定する必要があります。
以下を Java で翻訳するにはどうすればよいですか?
for (as many times an "image" entry appears) {
if ( type == "image") {
imgarr[index found][id] = "5465465";
imgarr[index found][type] = "image";
imgarr[index found][data] = "http://pagesbyz.com/theImages/gallery/portfolio_app07.png";
}
}
for (as many times an "text" entry appears) {
if ( type == "text") {
txtarr[index found][id] = "12";
txtarr[index found][type] = "text";
txtarr[index found][data] = "This is a test";
txtarr[index found][id] = "082";
txtarr[index found][id] = "text";
txtarr[index found][id] = "THIS IS A TEST TEXT";
and so forth...
}
}
タイプが「テキスト」に等しい場合も同じですか?