2013-01-02 6 views
0

J'utilise la réponse JSon pour analyser le titre, le contenu de la date et les images miniatures et les placer dans la liste. J'ai analysé le titre, la date, le contenu et le nom qui sont obtenus dans listview mais quand j'ai inclus des images miniatures json analysant dans la boucle pour afficher dans la liste, rien ne s'affiche dans la sortie.Peut-on m'aider à analyser la réponse json. JSON responseis iciComment analyser cette réponse JSON

//json response to parse 
{ 
"status": "ok", 

"posts": [ 
    { 
     "id": 2498, 
     "title": "jigsaw lamp imported from thailand", 
     "content": "<p>Hi. It&#8217;s a invitation to have a look at a unique lamp shade called jigsaw lamp from thailand. Available in multi attractive colours.</p>\n", 
     "date": "2012-12-26 09:48:15", 
     "author": { 
      "name": "Tapas123456", 
         }, 
      "attachments": [ 
      { 
       "description": "", 
       "caption": "", 
       "mime_type": "image/jpeg", 
       "images": { 

        "thumbnail": { 
         "url": "http://site/wp-content/uploads/2012/12/646675-50x47.jpg", 

        } 
       } 
      },............... 

code suivant est utilisé pour ajouter des images et des données à LISTVIEW

public class CustomizedListView extends Activity { 
JSONArray posts = null; 

// All static variables 
static final String URL = "website/ads/?json=get_recent_posts"; 



    static final String KEY_POSTS = "posts"; 
    static final String KEY_ID = "id"; 
    static final String KEY_TITLE = "title"; 
    static final String KEY_DATE = "date"; 
    static final String KEY_CONTENT = "content"; 
    static final String KEY_AUTHOR = "author"; 
    static final String KEY_NAME = "name"; 
    static final String KEY_ATTACHMENTS = "attachments"; 
    static final String KEY_SLUG = "slug"; 
    static final String KEY_THUMB_URL = "thumbnail"; 
    static final String KEY_IMAGES = "images"; 
    static final String KEY_URL = "url"; 

ListView list; 
    LazyAdapter adapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>(); 


    // Creating JSON Parser instance 
      JSONParser jParser = new JSONParser(); 

      // getting JSON string from URL 
      JSONObject json = jParser.getJSONFromUrl(URL); 
      try { 
     JSONArray posts = json.getJSONArray(KEY_POSTS); 
     JSONArray attachments = json.getJSONArray(KEY_ATTACHMENTS); 
    // looping through all song nodes <song> 
      for(int i = 0; i < posts.length(); i++){ 
       JSONObject c = posts.getJSONObject(i); 
       // Storing each json item in variable 
       String id = c.getString(KEY_ID); 
       String title = c.getString(KEY_TITLE); 
       String date = c.getString(KEY_DATE); 
       String content = c.getString(KEY_CONTENT); 

       //authornumber is agin JSON Object 
       JSONObject author = c.getJSONObject(KEY_AUTHOR); 
       String name = author.getString(KEY_NAME); 

       //loop     
       for(int j = 0; j < attachments.length(); j++){ 
        JSONObject d = attachments.getJSONObject(j); 
        String slug = c.getString(KEY_SLUG); 

        JSONObject images = d.getJSONObject(KEY_IMAGES); 

        JSONObject thumbnail = images.getJSONObject(KEY_THUMB_URL); 
        String url = thumbnail.getString(KEY_URL); 

     // creating new HashMap 
     HashMap<String, String> map = new HashMap<String, String>(); 

     // adding each child node to HashMap key => value 
     map.put(KEY_ID, id); 
     map.put(KEY_TITLE, title); 
     map.put(KEY_DATE, date); 
     map.put(KEY_NAME, name); 
     map.put(KEY_CONTENT, content); 
     map.put(KEY_SLUG, slug); 
     map.put(KEY_URL, url); 


     // adding HashList to ArrayList 
     songsList.add(map); 
      } } 
      } catch (JSONException e) { 
       e.printStackTrace(); 

       } 


    list=(ListView)findViewById(R.id.list); 

    // Getting adapter by passing json data ArrayList 
    adapter=new LazyAdapter(this, songsList);   
    list.setAdapter(adapter); 


    // Click event for single list row 
    list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 


     } 
    });  
} 
    } 
+0

Les réponses seront acceptées Je n'ai pas obtenu la bonne réponse pour ma question précédente – Tycoon

+0

Je doute que toutes les réponses que vous avez reçues se sont trompées: http://stackoverflow.com/users/1784844/arun-a?tab=questions&sort=votes – Snicolas

+0

pas mauvaise réponse mec j'ai utilisé votre réponse mais cela n'a pas fonctionné pour moi – Tycoon

Répondre

0

Votre Attachement est un tableau de poste à l'intérieur de JSON mais dans le code que vous gardé en dehors de la boucle pour des postes. S'il vous plaît gardez-le à l'intérieur pour obtenir chaque pièce jointe par poste. Essayez d'appliquer selon l'image ci-dessous et vérifiez les implémentations.

enter image description here

Espérons que cela vous aidera.

+0

placé pièces jointes à l'intérieur de la boucle alors de ne pas travailler – Tycoon

+0

votre format json est faux.' "url": "http: // site/wp-content/uploads /2012/12/646675-50x47.jpg ",' supprime la virgule juste après l'URL. –

+0

moyennes images de petites URL sont là à côté de cela, donc j'ai édité ces choses – Tycoon

Questions connexes