作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码摘录从 Java 映射构建 Google App Engine 数据存储区实体。短字符串(小于450个字符)直接存储,长字符串转换为Text对象。
for (String key : movieMap.keySet()) {
String value = movieMap.get(key).trim();
if (value.length()>0 && value.length()<450) { // Short String - store as is
movieEntity.setProperty(key, value);
} else if (value.length()>=450) { // Long String - convert to text
movieEntity.setProperty(key, new Text(value));
}
}
以下代码以 Json 对象的形式检索实体:
Map<String, Object> result = new LinkedHashMap<String, Object>();
result.put("numberOfMovies", String.valueOf(movies.size()));
result.put("movies", movies);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
resp.getWriter().print(gson.toJson(result));
字符串的结果 JSON description
字段:
{
"propertyMap": {
"title": "טאנו מתחתנת עם מאנו - Tanu Weds Manu",
"duration": "154 דקות",
"movieId": "2315",
"image_url": "http://www.sderot-cin.org.il/media/sal/movies2009/2315/f18_tano mithatenet iim mano.jpg",
"description": "סינמסטה - מועדון הסרט ההודי רופא ממוצא הודי חוזר מלונדון במטרה לפגוש את כלתו המיועדת. הוא מופתע לגלות כי היא מאוהבת במישהו אחר ואין בכוונתה להינשא לו. התנהגותה הפראית גורמת לו לשקול מחדש את צעדיו.",
"explorationDate": "Apr 26, 2013 8:42:36 PM",
"actors": "קנגנה רנאוט, אר מדווהין",
"year": "2011",
"language": "הינדית",
"director": "אנאנד ראי",
"country": "הודו"
}
},
{
文本的结果 JSON description
字段,有一个奇怪的内部字典:
"propertyMap": {
"title": "הנעליים של אדון סימון - הצגת תיאטרון לילדים",
"movieId": "2316",
"image_url": "http://www.sderot-cin.org.il/media/sal/movies2009/2316/f18_anaaliim shel adon simon.jpg",
"description": {
"value": {
"value": "תיאטרון אורנה פורת לגילאי 3-7 אדון סימון עוזב את ארצו ועובר לגור בארץ אחרת. בביתו החדש הוא מחליט להיפרד מנעליו הישנות שליוו אותו כל חייו ולהחליפן בנעליים חדשות, אך משום מה הוא לא מצליח להיפטר מהישנות. בכל פעם שהוא זורק אותן, רחוק ככל שיהיה, הן תמיד חוזרות אליו בדרך פלא. הצגה מרגשת ומצחיקה שמלמדת אותנו לקבל בשמחה את הדברים החדשים שבחיינו ובאותו זמן להבין שאפשר גם להתגעגע לדברים הישנים. משך ההצגה כ50 דקות. כרטיסים: מכירה מוקדמת-30 ₪, ביום ההצגה-40 ₪ מנוי/מלווה : מכירה מוקדמת 20 ₪, ביום ההצגה 30 ₪."
}
},
"explorationDate": "Apr 26, 2013 8:42:36 PM"
}
},
问题是description
对于 String 字段,field 返回正常( key
: value
对),但有一个奇怪的内部 value
文本字段键 - 比较 description
在这两个例子中。
知道如何制作 Text
字段表现正常并显示为标准
最佳答案
看起来内部字典是序列化复杂的 GAE 数据存储文本对象的结果。
既然您使用键访问数据字段,那么我猜注释和一些 getter/setter 方法是不可能的?
在这种情况下,解决此问题的一个简单方法可能是在检索 map 后对其进行迭代,并使用标准字符串设置(替换)文本“描述”字段(如果它们是文本类型)。
然后,当您序列化为 JSON 时,这些字符串将像其他字符串一样处理。
关于java - GAE 数据存储文本弄乱了 JSON 表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16256578/
我是一名优秀的程序员,十分优秀!