我正在使用java。这是我的代码
RunQueryResponse response = dataset.runQuery("project_name", queryrequest).execute();
和response.tostring()。我有我想要的所有查询,但有很多。 如何获得每个字段的单个值。就像把它放在一个数组或我们可以调用for循环或interator的东西。 感谢
----添加代码-------- 这里有一些我的代码:
Iterator<EntityResult> entity_interator = response.getBatch().getEntityResults().iterator();
Map<String, Property> entity;
while(entity_interator.hasNext()){
entity = entity_interator.next().getEntity().getProperties();
String first = entity.get("First").toString();
String last = entity.get("Last").toString();
String time = entity.get("Time").toString();
System.out.println(first);
System.out.println(last);
System.out.println(time);
}
并回复:
{"values":[{"stringValue":"first name"}]}
{"values":[{"stringValue":"last name"}]}
{"values":[{"dateTimeValue":"2013-08-28T08:21:58.498Z"}]}
我怎样才能得到时间作为日期时间变量,名字和姓氏没有{“values”:[{“stringValue”:“和所有垃圾事件。
答案 0 :(得分:0)
每个Property
可能包含一个或多个Value
个对象,每个Value
可以包含多个不同值类型之一(每个类型都有自己的字段)。如果您的属性是单值的,您可以从列表中选择第一个:
Iterator<EntityResult> entity_interator = response.getBatch().getEntityResults().iterator();
Map<String, Property> entity;
while(entity_interator.hasNext()){
entity = entity_interator.next().getEntity().getProperties();
String first = entity.get("First").getValues().get(0).getStringValue();
String last = entity.get("Last").getValues().get(0).getStringValue();
DateTime dateTime = entity.get("Time").getValues().get(0).getDateTimeValue();
Date time = new Date(dateTime.getValue());
System.out.println(first);
System.out.println(last);
System.out.println(time);
}
请注意,这是使用JSON API(full JavaDoc reference)的示例。 Google Cloud Datastore docs中的示例正在使用Protocol Buffers API,它以相同的方式构造,但语法略有不同。