每当我收到json字符串作为请求时,我都必须将其插入到数据存储区实体中。以下是读取json字符串并存储到实体中的示例代码。
DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
Key abckey = KeyFactory.createKey("aaa","aaa1");
Entity abcentity = new Entity(abckey);
JSONArray abc;
Iterator iter = abc.iterator();
while (iter.hasNext()) {
innerObj = (JSONObject) iter.next();
abcentity.setProperty("id",Integer.parseInt(innerObj.get(
"id").toString()));
abcentity.setProperty("mid", Integer.parseInt(innerObj
.get("mid").toString()));
abcentity.setProperty("status", 1);
abcentity.setProperty("tid", touserid);
ds.put(abcentity);
}
只要有记录,它就会迭代json数组。但在谷歌管理控制台中,它只显示最后一条记录。这是将多个记录插入数据存储区的正确方法吗?如果没有,请给我一些解决方案。
答案 0 :(得分:3)
这是因为你只创建了一次。
试试这个:
DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
JSONArray abc;
Iterator iter = abc.iterator();
while (iter.hasNext()) {
innerObj = (JSONObject) iter.next();
// create
Key abckey = KeyFactory.createKey("aaa",Long.parseLong(innerObj.get(
"id").toString()));
Entity abcentity = new Entity(abckey);
// fill with data
// ...
// abcentity.setProperty ...
//
// save
ds.put(abcentity);
}
Key
是您实体的标识符,而不是名为id