2013-10-03 92 views
0

我正在使用谷歌趋势获得微粒关键字的趋势。它会返回JSON,但主要的问题是,我想创建一个持有数据并在java代码中用作数组List的类。 我很困惑什么是它的类结构当我得到的结果看起来像下面谷歌趋势api结果在java

{"version":"0.6","status":"ok","sig":"1248242565", 
"table": 
    { "cols": 
     [{"id":"date","label":"Date","type":"date","pattern":""}, 
     {"id":"query0","label":"linkedin","type":"number","pattern":""}, 
     {"id":"query1","label":"facebook","type":"number","pattern":""}], 

     "rows":[{"c":[{"v":new Date(2004,0,1),"f":"January 2004"},{"v":0.0,"f":"0"},{"v":0.0,"f":"0"}]}, 
       {"c":[{"v":new Date(2004,5,1),"f":"June 2004"},{"v":0.0,"f":"0"}, {"v":0.0,"f":"0"}]}, 
       {"c":[{"v":new Date(2004,8,1),"f":"September 2004"},{"v":0.0,"f":"0"},{"v":0.0,"f":"0"}]}, 
       {"c":[{"v":new Date(2013,9,1),"f":"October 2013"},{"v":1.0,"f":"1"},{"v":83.0,"f":"83"}]}] 
    } 
} 

它将返回的搜索查询行和cols如果我搜索两个单独的字,结果是像上面JSON。不知道我怎么能让类Trend.java和该列表对象,包含所有这些信息

回答

0

你会如何表示这些值?我会去执行List<HashMap<String, String>>

您可以将一行中的每个项目分配到一个HashMap,列标题为key。所以:

HashMap<String, String> row = new HashMap<String, String>(); 
row.put("id", "c"); 
// add the rest. 

然后,您可以遍历每一行,并通过名称请求列数据。这也将使一些非常好的语言代码!

+0

cols值是动态的,现在它可能是2或4也是基于搜索。 我想将所有这个列表或地图存储在一个java类对象中 –

+1

那么你可以在类“Trend”中包装这个'List'。至于动态列,'HashMap'可以存储任意数量的列。该解决方案适合。你所要做的就是弄清楚如何循环访问'JSON'值。 – christopher