2013-03-04 2 views
0

URL-адрес имеет следующий источник просмотра. Мне нужно проанализировать и получить путь изображения, предоставленный для «Folio» .Кто-нибудь, пожалуйста, расскажите, как получить массив следующих путей. Ранжирование заранееJSON-анализ в приложении android

 {"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) 
+2

JSon вы предоставили не является действительным. –

+0

@ AnujMathur_07 действует как в формате ?? – Shweta

+0

Теперь это кажется действительным. –

ответ

2

Во-первых, создать ArrayList как ...

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

Получить Folio JSONArray от JSONObject маркетинга как ...

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

Теперь поместите все предметы из фолио в urlList, как ...

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

Теперь вы можете использовать этот urlList.

0

Предположим, у вас есть этот JSON в String переменную с именем stringSource.

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

Затем используйте JSONArray.getString(int index) для извлечения каждого URL-адреса из массива.

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); 

} 

NB: Я думаю, что вы получили неверный ответ в формате JSON. Я проверил свой ответ here

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)); 
} 
-1

Проверьте этот инструмент, который находится в свободном доступе

Android Class Creator tool

Это учебное пособие с ним. Это так просто в использовании.

+0

почему -1 ?? это не полезно ??? вы проверяете этот инструмент? – sachin

0

Возьмите этот класс

public class GettingResponseFromUrl { 

    public static String convertStreamToString(InputStream inputStream) 
      throws IOException { 
     if (inputStream != null) { 
      StringBuilder sb = new StringBuilder(); 
      String line; 
      try { 
       BufferedReader reader = new BufferedReader(
         new InputStreamReader(inputStream, "UTF-8")); 
       while ((line = reader.readLine()) != null) { 
        sb.append(line).append("\n"); 
       } 
      } finally { 
       inputStream.close(); 
      } 
      return sb.toString(); 
     } else { 
      return ""; 
     } 
    } 

    public static String GetDataFromServer(String url, String method) { 
     url = url.replace(" ", "%20"); 
     String Root_Response = null; 
     try { 
      HttpParams basicparams = new BasicHttpParams(); 
      int timeoutConnection = 120000; 
      HttpConnectionParams.setConnectionTimeout(basicparams, 
        timeoutConnection); 
      DefaultHttpClient client = new DefaultHttpClient(basicparams); 
      URI uri = new URI(url); 
      HttpResponse res = null; 
      if (method.equalsIgnoreCase("POST")) { 
       HttpPost httpPost = new HttpPost(uri); 
       res = client.execute(httpPost); 
      } else if (method.equalsIgnoreCase("GET")) { 
       HttpGet httpGet = new HttpGet(uri); 
       res = client.execute(httpGet); 
      } 
      InputStream data = res.getEntity().getContent(); 
      Root_Response = convertStreamToString(data); 

     } catch (ClientProtocolException e) { 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (URISyntaxException e) { 
      e.printStackTrace(); 
     } 
     return Root_Response; 
    } 

} 

// чем вызов веб-службы из-под кодом

new GettingData().execute(); 

    private class GettingData extends AsyncTask<String, String, String> { 

     private ProgressDialog progressDialog; 
      private String response; 

     @Override 
     protected void onPreExecute() { 

      super.onPreExecute(); 
      progressDialog = new ProgressDialog(mContext); 
      progressDialog.setMessage("Loading ..."); 
      progressDialog.setIndeterminate(false); 
      progressDialog.setCancelable(true); 
      progressDialog.show(); 

     } 

     @Override 
     protected String doInBackground(String... args) { 
try { 
      Response = GettingResponseFromUrl 
        .GetDataFromServer(URL, "POST"); 
      Log.e("Response", Response); 
     } catch (Exception e) { 
     } 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 


       } 
      }); 
      return null; 
     } 

     @Override 
     protected void onPostExecute(String args) { 
      progressDialog.dismiss(); 

     } 
    } 
Смежные вопросы