0

URL には次のビュー ソースがあります。「Folio」に指定された画像パスを解析して取得する必要があります。次のパスの配列を取得する方法を教えてください。事前に感謝します。

     {"SEO":

  {"Marketing":["http://www.tts.com/media/imagepath/Web.jpg","http://www.tts.com/imagepath/ranks.jpg"],
      "Folio":["http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_a_grade_motor_school.html_a_poftfolio_2013_01_11.png",
                                   "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_abc_tarps.html_a_poftfolio_2013_01_10.png",
                                              "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_able_scale.html_a_poftfolio_2013_01_10.png",
                                              "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_accent_aluminum_windows.html_a_poftfolio_2013_01_10.png",
                                              "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_access_health.html_a_poftfolio_2013_01_10.png",
                                              "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_acmeda__zipscreen.html_a_poftfolio_2013_01_11.png",
                                              "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_aditya_birla_minerals.html_a_poftfolio_2013_01_10.png",
                                              "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_advanced_corporate_badges.html_a_poftfolio_2013_01_10.png",
                                              "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_aerotech_fans.html_a_poftfolio_2013_01_10.png",
                                              "http://www.tts.com/media/imagepath/portfolio_images/http_arctictern.t.com.au_folio_portfolio_agriculture_victoria_services_.html_a_poftfolio_2013_01_10.png"]},

 "Services":{"Hosting":["http://www.tts.com/media/imagepath/hostinga.jpg","http://www.tts.com/media/imagepath/hostingb.jpg"],

  "Mobile Apps":["http://www.tts.com/media/imagepath/mobileapp.jpg","http://www.tts.com/media/imagepath/mobilesite.jpg"]

}


}

JSON パーサー クラスには、

public class JSONParser {

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    // constructor
    public JSONParser() {

    }

    public JSONObject getJSONFromUrl(String url) {

        // Making HTTP request
        try {
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();           

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();

        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

        // try parse the string to a JSON object
        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // return JSON String
        return jObj;

    }
}

主な活動内容は

     public class AndroidJSONParsingActivity extends ListActivity {

    private static String url = "http://www.xyz.com/album_pro/array_to_encode";
    private static final String TAG_FOLIO = "SEO";
     JSONArray folio = null;
     @SuppressLint("NewApi")
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
              StrictMode.setThreadPolicy(policy);

            JSONParser jParser = new JSONParser();


            try{

                JSONObject json = jParser.getJSONFromUrl(url);
                Log.v("URL",json.toString());
            JSONObject seo = json.getJSONObject("SEO");
            Log.v("seo",seo.toString());
            JSONArray folio = json.getJSONArray("Folio");

            for(int i=0;i< folio.length();i++)
            {
                Log.v("Test", "test");
            }


            }
            catch(Exception e)
            {
                e.printStackTrace();
            }

}
}         

logcatファイルでアプリを実行した後に取得するエラーは次のとおりです

03-04 15:36:50.458: W/System.err(23230): org.json.JSONException: No value for Folio
03-04 15:36:50.458: W/System.err(23230):    at org.json.JSONObject.get(JSONObject.java:354)
03-04 15:36:50.458: W/System.err(23230):    at org.json.JSONObject.getJSONArray(JSONObject.java:544)
03-04 15:36:50.458: W/System.err(23230):    at com.example.testgallery.AndroidJSONParsingActivity.onCreate(AndroidJSONParsingActivity.java:37)
03-04 15:36:50.458: W/System.err(23230):    at android.app.Activity.performCreate(Activity.java:5008)
03-04 15:36:50.458: W/System.err(23230):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-04 15:36:50.458: W/System.err(23230):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
4

6 に答える 6

2

まず、次のようなArrayListを作成します...

ArrayList<String> urlList = new ArrayList<String>();

次のようなJSONObjectマーケティングからFolioJSONArrayを取得します...

JSONArray folio = marketing.getJSONArray("Folio");

次に、FolioからurlListまでのすべてのアイテムを次のように配置します...

for(int i=0;i<folio.length();i++){
  urlList.add(folio.getString(i));
}

これで、このurlListを使用できます。

于 2013-03-04T10:16:40.873 に答える
1

これを試して

JSONObject json = jParser.getJSONFromUrl(url);
JSONObject seoObj = jObj.getJSONObject("SEO");
JSONArray folioArr = seoObj.getJSONArray("Folio");
ArrayList<String> image_urls = new ArrayList<String>();
for (int i = 0; i < folioArr.length(); i++) {
image_urls.add(folioArr.getString(i));
}
于 2013-03-04T10:16:30.190 に答える
0

返信を次のように変換しますString

それで

JSONObject json = new JSONObject(response.toString());
//Since Folio is an array
JSONArray folio = json.getJSONArray("Folio");
//Get Individual Links
for(int i=0;i<folio.length();i++){
   //Fetch Your Code Here
   String image = folio.getString(i);

}

注意: 無効な JSON 応答を受け取ったと思います。ここであなたの応答を確認しました

于 2013-03-04T10:12:21.593 に答える
0

Stringという変数にこの JSON があるとしますstringSource

JSONObject json = new JSONObject(stringSource);
JSONObject seo = json.getJSONObject("SEO");
JSONArray folio = json.getJSONArray("Folio");

次にJSONArray.getString(int index)、配列から各 URL を取得するために使用します。

于 2013-03-04T09:56:39.840 に答える