/*package*/
 static List<Trends> constructTrendsList(Response res) throws WeiboException {
   JSONObject json = res.asJSONObject();
   List<Trends> trends;
   try {
     Date asOf = parseDate(json.getString("as_of"));
     JSONObject trendsJson = json.getJSONObject("trends");
     trends = new ArrayList<Trends>(trendsJson.length());
     Iterator ite = trendsJson.keys();
     while (ite.hasNext()) {
       String key = (String) ite.next();
       JSONArray array = trendsJson.getJSONArray(key);
       Trend[] trendsArray = jsonArrayToTrendArray(array);
       if (key.length() == 19) {
         // current trends
         trends.add(new Trends(res, asOf, parseDate(key, "yyyy-MM-dd HH:mm:ss"), trendsArray));
       } else if (key.length() == 16) {
         // daily trends
         trends.add(new Trends(res, asOf, parseDate(key, "yyyy-MM-dd HH:mm"), trendsArray));
       } else if (key.length() == 10) {
         // weekly trends
         trends.add(new Trends(res, asOf, parseDate(key, "yyyy-MM-dd"), trendsArray));
       }
     }
     Collections.sort(trends);
     return trends;
   } catch (JSONException jsone) {
     throw new WeiboException(jsone.getMessage() + ":" + res.asString(), jsone);
   }
 }
 /*package*/
 static Trends constructTrends(Response res) throws WeiboException {
   JSONObject json = res.asJSONObject();
   try {
     Date asOf = parseDate(json.getString("as_of"));
     JSONArray array = json.getJSONArray("trends");
     Trend[] trendsArray = jsonArrayToTrendArray(array);
     return new Trends(res, asOf, asOf, trendsArray);
   } catch (JSONException jsone) {
     throw new WeiboException(jsone.getMessage() + ":" + res.asString(), jsone);
   }
 }