2016-02-03 46 views
0

請問,我一直在尋找,試圖用不同的方式實現它。但我需要一些建議。如何將參數列表從JSON添加到HashMap?

我在Java類下列地圖(靜態項目註釋掉)

/** 
* An array of YouTube videos 
*/ 


public static List<YouTubeVideo> ITEMS = new ArrayList<>(); 

/** 
* A map of YouTube videos, by ID. 
*/ 


public static Map<String, YouTubeVideo> ITEM_MAP = new HashMap<>(); 



/* 
static { 

    addItem(new YouTubeVideo("x-hH_Txxzls", "Titlee 2")); 
    addItem(new YouTubeVideo("TTh_qYMzSZk", "Title 3")); 
    addItem(new YouTubeVideo("tttG6SdnCd4", "Some Title")); 
    addItem(new YouTubeVideo("x-hH_Txxzls", "This post title")); 
    addItem(new YouTubeVideo("TTh_qYMzSZk", "Post title")); 
    addItem(new YouTubeVideo("tttG6SdnCd4", "Titles")); 
    addItem(new YouTubeVideo("x-hH_Txxzls", "again titles")); 

}*/ 


private void addItem(final YouTubeVideo item) { 
    ITEMS.add(item); 
    ITEM_MAP.put(item.id, item); 
} 

/** 
* A POJO representing a YouTube video 
*/ 
public static class YouTubeVideo { 
    public String id; 
    public String title; 

    public YouTubeVideo(String id, String content) { 
     this.id = id; 
     this.title = content; 
    } 



    @Override 
    public String toString() { 
     return title; 
    } 
} 

這我解析器(現在它把數據發送到另一個列表和沃金也)

​​3210

但我不能得到關於如何將數據發送到此HashMap,以同樣的方式,因爲我有靜態項目:(

主要關注的是,HashMap中應該有一個項目列表,因爲它可以被更新。 基本上,它會創建一個標題列表和videoThumbnail。

任何意見將不勝感激。乾杯。

回答

0

改變你的方法是這樣

public static void addItem(YouTubeVideo item) { 
    ITEMS.add(item); 
    ITEM_MAP.put(item.id, item); 
} 

然後將這些內部try塊

YouTubeVideo youtubeVideo = new YouTubeVideo(
     json.getString(Config.TAG_VIDEO_ID), json.getString(Config.TAG_TITLE)); 

Config.addItem(youtubeVideo); // assuming addItem in class Config 

也使YouTubeVideo爲非靜止狀或好於獨立的Java文件創建該類

public class YouTubeVideo { 
+0

嗯,你是什麼意思「後:listIndividualPosts.add(IndividualPost); 「? 注:我的代碼示例 - 是2個不同的文件。 –

+0

是的,我明白。首先在第一個java類中更新你的方法,然後在其他java類中添加這兩行。 – Rohit5k2

+0

這樣它會引發未處理的異常org.json.jsonexception其不處理(如果我之後添加以下代碼 listIndividualPosts.add(IndividualPost); PS的addItem座落在同一個文件映射,所以我改變配置來需要的java類。thx –