0

我正在使用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":" 和所有垃圾的情况下将时间作为日期时间变量和名字和姓氏。

4

1 回答 1

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的示例(完整的 JavaDoc 参考)。Google Cloud Datastore 文档中的示例使用的是 Protocol Buffers API,其结构相同,但语法略有不同。

于 2013-08-27T17:00:41.523 回答