Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析列表<;列表<;字符串>&燃气轮机;在Android中?_Java_Android_Google Api_Google Api Java Client_Adsense - Fatal编程技术网

Java 解析列表<;列表<;字符串>&燃气轮机;在Android中?

Java 解析列表<;列表<;字符串>&燃气轮机;在Android中?,java,android,google-api,google-api-java-client,adsense,Java,Android,Google Api,Google Api Java Client,Adsense,我正在为Android开发一个自定义Adsense报告工具。我已成功通过身份验证,可以对服务器进行API调用。但现在当我收到响应时,我不知道如何解析它并正确地向用户显示结果 根据javaDocs,生成一个列表>,但我有点不知道如何正确解析它以获得: -Today's earnings -Yesterday's earnings -Last 7 days -Last month -From the beginning of time 这是我与这个问题相关的部分代码 Reports

我正在为Android开发一个自定义Adsense报告工具。我已成功通过身份验证,可以对服务器进行API调用。但现在当我收到响应时,我不知道如何解析它并正确地向用户显示结果

根据javaDocs,生成一个列表>,但我有点不知道如何正确解析它以获得:

-Today's earnings
-Yesterday's earnings
-Last 7 days
-Last month
-From the beginning of time
这是我与这个问题相关的部分代码

        Reports.Generate request = adsense.reports().generate(startDate, endDate);    

        request.setMetric(Arrays.asList("PAGE_VIEWS", "AD_REQUESTS", "AD_REQUESTS_COVERAGE", "CLICKS",
                "AD_REQUESTS_CTR", "COST_PER_CLICK", "AD_REQUESTS_RPM", "EARNINGS"));

        request.setDimension(Arrays.asList("DATE", "WEEK", "MONTH"));    
        request.setSort(Arrays.asList("+DATE"));

        AdsenseReportsGenerateResponse response = request.execute();

        //TODO: Here be dragons
        response.getRows();
编辑:这里是javaDoc,它提到了

嗯,似乎这个网站上没有人能帮忙

就我对api的理解而言,它不是一个
列表。试试这个:

String[][] array = response.getRows();

for (int i = 0; i < array.getSize(); i++){

    String dimension = array[i][0];
    String metric = array[i][1];

    //Do what you want with them

}
List list = response.getRows();

for (int i = 0; i < list.size(); i++){

List<String> list2 = list.get(i);

for (int j = 0; j < list2.size(); j++){
String value = list2.get(j);
//Do what you want
}

}
就我对api的理解而言,它不是一个
列表。试试这个:

String[][] array = response.getRows();

for (int i = 0; i < array.getSize(); i++){

    String dimension = array[i][0];
    String metric = array[i][1];

    //Do what you want with them

}
List list = response.getRows();

for (int i = 0; i < list.size(); i++){

List<String> list2 = list.get(i);

for (int j = 0; j < list2.size(); j++){
String value = list2.get(j);
//Do what you want
}

}

您会发现我们的示例代码很有用:

也就是说,这是您感兴趣的文件:

下面是打印输出的代码片段。请注意,这适用于命令行应用程序,但应易于适应:

if ((response.getRows() != null) && !response.getRows().isEmpty()) {
  // Display headers.
  for (AdsenseReportsGenerateResponseHeaders header : response.getHeaders()) {
    System.out.printf("%25s", header.getName());
  }
  System.out.println();

  // Display results.
  for (List<String> row : response.getRows()) {
    for (String column : row) {
      System.out.printf("%25s", column);
    }
    System.out.println();
    }

  System.out.println();
} else {
  System.out.println("No rows returned.");
}
if((response.getRows()!=null)和&!response.getRows().isEmpty()){
//显示标题。
对于(AdsenseReportsGenerateResponseHeaders标头:response.getHeaders()){
System.out.printf(“%25s”,header.getName());
}
System.out.println();
//显示结果。
对于(列表行:response.getRows()){
for(字符串列:行){
System.out.printf(“%25s”,列);
}
System.out.println();
}
System.out.println();
}否则{
System.out.println(“没有返回行”);
}
至于获取不同时间段的数据,您可能应该运行不同的报告,而不是将其全部塞进一个报告中,因为这需要不同的开始日期和结束日期。下面是它的工作原理:

  • 今天的收入:将开始和结束日期设置为今天,将维度列表设置为仅日期
  • 昨天的收益:将开始和结束日期设置为昨天,将维度列表设置为just date
  • 最后7天:如果需要每天的数据,则将开始日期设置为7天前,结束日期设置为今天,维度列表设置为仅日期。如果您想汇总统计数据,您可能需要自己计算,因为周和月指的是日历周和月,而不是最后7天
  • 上月:开始日期上月1日,结束日期当月最后一天,维度月
  • 所有时间:你希望这个怎么聚合?每个月?然后将开始日期设置为1980-1-1,结束日期设置为今天,维度设置为月份
这篇博文应该有助于更好地理解报告概念:


如果你还需要什么帮助,请告诉我

您应该会发现我们的示例代码很有用:

也就是说,这是您感兴趣的文件:

下面是打印输出的代码片段。请注意,这适用于命令行应用程序,但应易于适应:

if ((response.getRows() != null) && !response.getRows().isEmpty()) {
  // Display headers.
  for (AdsenseReportsGenerateResponseHeaders header : response.getHeaders()) {
    System.out.printf("%25s", header.getName());
  }
  System.out.println();

  // Display results.
  for (List<String> row : response.getRows()) {
    for (String column : row) {
      System.out.printf("%25s", column);
    }
    System.out.println();
    }

  System.out.println();
} else {
  System.out.println("No rows returned.");
}
if((response.getRows()!=null)和&!response.getRows().isEmpty()){
//显示标题。
对于(AdsenseReportsGenerateResponseHeaders标头:response.getHeaders()){
System.out.printf(“%25s”,header.getName());
}
System.out.println();
//显示结果。
对于(列表行:response.getRows()){
for(字符串列:行){
System.out.printf(“%25s”,列);
}
System.out.println();
}
System.out.println();
}否则{
System.out.println(“没有返回行”);
}
至于获取不同时间段的数据,您可能应该运行不同的报告,而不是将其全部塞进一个报告中,因为这需要不同的开始日期和结束日期。下面是它的工作原理:

  • 今天的收入:将开始和结束日期设置为今天,将维度列表设置为仅日期
  • 昨天的收益:将开始和结束日期设置为昨天,将维度列表设置为just date
  • 最后7天:如果需要每天的数据,则将开始日期设置为7天前,结束日期设置为今天,维度列表设置为仅日期。如果您想汇总统计数据,您可能需要自己计算,因为周和月指的是日历周和月,而不是最后7天
  • 上月:开始日期上月1日,结束日期当月最后一天,维度月
  • 所有时间:你希望这个怎么聚合?每个月?然后将开始日期设置为1980-1-1,结束日期设置为今天,维度设置为月份
这篇博文应该有助于更好地理解报告概念:


如果你还需要什么帮助,请告诉我

根据你的链接,
getRows()
返回
String[][]]
。是的,它是书面字符串[][],但它实际上返回列表根据你的链接,
getRows()
返回
String[][]
。是书面字符串[][],但它实际上返回列表我已经尝试过了<代码>错误:类型不匹配:无法从“查看我的编辑”转换。我认为您需要假设每个位置上都有哪个属性,但这似乎不正确。我尝试了,value返回所有列/行中的所有数据。例如:`request.setMetric(Arrays.asList(“收益”));request.setDimension(Arrays.asList(“月”)。。。。。字符串值=list2.get(j);Log.v(标记,值);`输出:`01-09:03:12.205:V/MyActivityValue(449):2011-10 01-09 09:03:12.205:V/MyActivityValue(449):36.92 01-09:03:12.205:V/MyActivityValue(449):2011-11 01-09:03:12.205:V/MyActivityValue(449):58.40 01-09:03:12.205:V/MyActivityValue(449):2011-12 01-09:03:12.205:V/MyActivityValue(449):52.87 01-09 09:03:12.205:V/MyActivityValue(449):2012-01`我明白了。我不确定API是如何工作的。如果它显示了一些东西,可能你没有正确设置值。我已经试过了<代码>错误:类型不匹配:无法从“查看我的编辑”转换。我认为您需要假设每个位置上都有哪个属性,但这似乎不正确。我尝试了,value返回所有列/行中的所有数据。例如:`request.setMetric(Arrays.asList(“收益”));request.setDimension(Arrays.asL