如何用json开发玻璃器皿

时间:2013-11-13 10:43:37

标签: google-mirror-api google-glass

在java中的google glass示例应用程序中,我发现它正在通过JSP和servlet工作。所以我可以创建一个timelineitem并在其中设置文本

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
  TimelineItem timelineItem = new TimelineItem();
  timelineItem.setText("My Sample Project");
  MirrorClient.insertTimelineItem(credential, timelineItem);
  response.sendRedirect(WebUtil.buildUrl(request, "/second.jsp"));
}   

从jsp页面我可以捕捉时间线并从中获取价值,比如

<%
    if (timelineItems != null && !timelineItems.isEmpty()) {
        for (TimelineItem timelineItem : timelineItems) {
%>
<div class="container">
    <div class="row">
        <div class="span4">
            <h2>Timeline 2</h2>
            <h3><%=StringEscapeUtils.escapeHtml4(timelineItem
                        .getText())%></h3>
        </div>
    </div>
</div>
<%
    }
    }
%>

所以现在我想做一些事情,如时间轴捆绑,设置背景图片,自定义菜单,语音命令等。

但是在高级作业教程中,我发现它使用了一些JSON格式,例如menuitem

HTTP/1.1 201 Created
Date: Tue, 25 Sep 2012 23:30:11 GMT
Content-Type: application/json
Content-Length: 303

{
  "text": "Hello world",
  "menuItems": [
    {
      "action": "REPLY"
    }
  ]
}

那我怎么做这样的事情? 我应该在servlet中写什么以及如何从jsp页面获取价值? 我应该从servlet生成json并直接写入响应或其他内容

1 个答案:

答案 0 :(得分:1)

您的代码示例中有一些内容有点误导和混淆,所以让我们分解它们。

虽然Java示例使用Servlet,因为它旨在作为服务器端操作,但它没有使用JSP作为Glass部分本身。这仅用于发回给用户的内容。

在第一个示例中,调用MirrorClient.insertTimelineItem()执行将卡发送到Glass的工作。您通过在此项目上创建TimelineItem并设置字段来创建此卡片。

尽管大多数Mirror API文档都包含多种语言的示例,包括带有JSON的原始HTML(您引用的)和Java,但您并未指出第三个示例的来源。例如,参见https://developers.google.com/glass/v1/reference/timeline/insert#examples,它有一个更完整的Java示例,它既可以在卡上设置文本,也可以设置通知信息。对于该页面上提到的各种其他属性,还有其他的getter。

Mirror API Java Library的完整JavaDoc位于https://developers.google.com/resources/api-libraries/documentation/mirror/v1/java/latest/