Java+;BigQuerie如何获得正确的JSON而不是一些字段值列表?
我是BigQuery新手,尝试从测试表中获取一些值。有三列:ID、DateTime和String。将当前时间(以毫秒为单位)作为ID、当前时间(以UTC为单位)和当前时间(以毫秒为单位)作为字符串填充某些行,因此该行如下所示: 1480419755489 | 2016-11-29 11:42:35 UTC |来源14804197554881 BigQuery控制台中的Json如下所示: { “ID”:“1480419755489”, “日期时间”:“2016-11-29 11:42:35 UTC”, “字符串”:“源14804197554881” } 一切似乎都很好。但在Java中,当我尝试获取这一行时,我得到了一些不好的结果,看起来像: [FieldValue{attribute=PRIMITIVE,value=1480419755489},FieldValue{attribute=PRIMITIVE,value=1.4804419755E9},FieldValue{attribute=PRIMITIVE,value=Source 14804197554881}]Java+;BigQuerie如何获得正确的JSON而不是一些字段值列表?,java,json,google-bigquery,Java,Json,Google Bigquery,我是BigQuery新手,尝试从测试表中获取一些值。有三列:ID、DateTime和String。将当前时间(以毫秒为单位)作为ID、当前时间(以UTC为单位)和当前时间(以毫秒为单位)作为字符串填充某些行,因此该行如下所示: 1480419755489 | 2016-11-29 11:42:35 UTC |来源14804197554881 BigQuery控制台中的Json如下所示: { “ID”:“1480419755489”, “日期时间”:“2016-11-29 11:42:35 UTC
注意,输出中没有列名,只有一些属性;DateTime以X.YYEZ的形式显示为毫秒。这是否可以以某种方式修复,或者这就是它的显示方式?我需要解析响应中的每个值吗?对于我得到的每一行,我必须创建新的Json对象并向其写入值吗?或者我应该创建一个像MyRow这样的类,该类具有正确的数据类型,并且查询结果将以某种方式向类的对象写入正确的值 将回答我自己的问题。这些字段值是映射。所以我用了这样的方法: 使用所需的数据类型创建了my类MyRow。 像这样解析我从BigQuery获得的每一行:
MyRow myRow = new MyRow();
myRow.setID(Integer.parseInt(row.get(0).stringValue()));
myRow.setDateTime(new Date(new BigDecimal(row.get(1).stringValue()).longValue()));
myRow.setString(row.get(2).stringValue());
看看我得到了什么:
Gson gson = new Gson();
System.out.println(gson.toJson(myRow));