私は JSON が初めてで、情報を取得して JSON オブジェクトに入れ、値の一部を読み取る方法を知りたいと思っていました。json 情報は次のようになります。
{
"photos":{
"page":1,
"pages":1802,
"perpage":100,
"total":"180134",
"photo": [
{
"id":"8711964781",
"owner":"21156896@N07",
"secret":"3e24e45977",
"server":"8553",
"farm":9,
"title":"Old Harbor",
"ispublic":1,
"isfriend":0,
"isfamily":0
},
{
"id":"8712680696",
"owner":"21156896@N07",
"secret":"fe82f8387b",
"server":"8122",
"farm":9,
"title":"Rockefeller Plaza",
"ispublic":1,
"isfriend":0,
"isfamily":0
},
....
写真の配列はかなり長く続きます。「isPublic」の値を取得するにはどうすればよいですか? 「秘密」は「」のために文字列であり、isPublicは整数またはブール値ですか? 基本的に、それらを URL リンクに入れて画像をダウンロードする必要があります。
public class ReadString extends AsyncTask<String, Integer, String>{
@Override
protected String doInBackground(String... FlickrString) {
try {
json = getValue();
return json.getString(FlickrString[0]);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
tvTest.setText(result);
}
これはすべての文字列で機能します。farm、isfriend、isfamily、および ispublic を文字列に変換するにはどうすればよいですか? Int値を取得するために別のことを試しました。intを読み取るためのまったく新しいクラスを作成しました。しかし、正しい int 値を取得していません。int をダウンロードして文字列に変換し、String.valueOf(x); を使用して textview を int の文字列に変更します。私は何を間違っていますか?
public class ReadInt extends AsyncTask<String, Integer, String>{
@Override
protected String doInBackground(String... FlickrString) {
try {
json = getValue();
int x = json.getInt(FlickrString[0]);
String y = String.valueOf(x);
return y;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
tvTest.setText(result);
}
}
ありがとう!