Google Appengine将字符串转换为文本

时间:2014-06-05 22:03:01

标签: android string google-app-engine text google-cloud-datastore

我正在尝试将字符串转换为文本,因为我在appengine上遇到错误,表示我的字符串太长了。这是代码:

import com.google.appengine.api.datastore.Text;

public void setItems(String itemList) {
    this.items = new Text(itemList);
}

但是appengine将项目的值显示为[object Object]。

文档here似乎说我的方法是正确的,但很明显我错过了一些东西(可能很简单)。

经过一番实验,我确定了

zt.setItems("test string") 

正常工作,但是当我使用

将zt上传到appengine时
public void insertTheme(Theme theme) {
ofy().save().entity(uccwtheme).now();
}

然后,如果我在Cloud Datastore中打开实体,我看到items的值是[object Object]

更多:

因此,如果我在调试过程中打开Theme.java(已编译的类),方法setItems会显示:

/**
* Model definition for Theme.
*
 * <p> This is the Java data model class that specifies how to parse/serialize into the     JSON that is
 * transmitted over HTTP when working with the themeendpoint. For a detailed explanation see:
* <a href="http://code.google.com/p/google-http-java-client/wiki/JSON">http://code.google.com/p/google-http-java-client/wiki/JSON</a>
* </p>
*
* @author Google, Inc.
*/


  /**
   * @param themeItems themeItems or {@code null} for none
*/
  public Theme setItems(java.lang.String items) {
this.items = items;
return this;
}

文字怎么了?为什么返回类型会改变?

2 个答案:

答案 0 :(得分:0)

尝试将其中一个“项目”重命名为其他内容。例如,

this.items = new Text(itemsString);

答案 1 :(得分:0)

哇,所以我是个白痴。 Appengine将Text存储为对象,这就是无法在Cloud Console中查看的原因。如果我试图实际下载主题,我会看到有一个与我上传的内容相匹配的项目的价值。

浪费多个小时的方法:(