每次我尝试做searchHit.sourceAsString()
或searchHit.getSourceAsString()
,我得到null
回来。但如果我尝试searchHit.getFields()
- >它会给我一个Map[String, SearchHitField]
,然后我可以从它那里得到必要的字段 - 我不想这样做。那是因为我想用Lift-json
库解析“如果获得”json
字符串从searchHi
吨在我的案例类。有任何想法吗?如何获取searchHit的json字符串?
0
A
回答
0
将弹性搜索调用searchHit.sourceAsString()
包装在scala中。选项如下:Option(searchHit.sourceAsString())
。您可以撰写或根据需要进行模式匹配。
本质上,当你在一个选项中包装null时,它会给你scala.None type back。你可以试试你的REPL会话。
如果你想撰写,你可以这样做:
val jvalOpt: Option[net.liftweb.json.JValue] = Option(searchHit.sourceAsString()).map(net.liftweb.json.parse(_))
,或者如果你想要模式匹配,那么你可以这样做:
val jval = Option(searchHit.sourceAsString()) match {
case None => // todo
case Some(s) => net.liftweb.json.parse(s)
}
4
searchHit.sourceAsString()
将返回null
如果你不这样做请求字段_source
。
如果您在映射中禁用它(在这种情况下必须启用它),或者指定了其他字段以返回,则会发生这种情况。
特别是,您必须将_source
传递到您的SearchRequestBuilder中的字段列表。默认字段列表为[_source]
,因此如果您未指定任何其他字段,则会返回_source
,但如果指定了其他字段,则还必须添加_source
。
相关问题
- 1. 如何从json字符串获取值?
- 2. 如何从URL获取JSON字符串?
- 3. 如何获取JSON字符串值?
- 4. 如何在JSON中获取字符串?
- 5. 如何从url获取json字符串?
- 6. 如何从json字符串获取值?
- 7. 如何从以下JSON字符串获取字符串[]?
- 8. 从Json获取字符串?
- 9. 获取从JSON字符串
- 10. 从Json获取字符串
- 11. libcurl获取JSON字符串
- 12. 如何获取JSON字符串中的字典内的字典?
- 13. 如何从JQuery中的JSON字符串获取JSON内容?
- 14. 如何获取json格式的字符串格式的数字?
- 15. 如何从json字符串中使用newtonsoft .json获取值c#
- 16. 如何读取JSON字符串[jQuery的]
- 17. 获取JSON字符串的数组
- 18. Redis获取JSON字符串的“\”
- 19. 获取JSON字符串的HttpClient
- 20. 如何从使用C#的XML字符串获取JSON字符串?
- 21. 如何获得JSON字符串变量
- 22. 如何提取JSON字符串GSON
- 23. 如何正确读取json字符串
- 24. 从JSON字符串获取数据
- 25. 获取JSON字符串化值
- 26. 从web服务获取json字符串
- 27. 通过字符串获取JSON对象
- 28. GSON - 从字符串中获取JSON值
- 29. 从字符串获取Json值
- 30. 使用字符串获取JSON属性
当我执行searchHit.getSourceAsString()时,总是返回null。我原来的问题不是学习如何解析,而是如何获得searchHit的json。 –
我误解了这个问题。 @ knutwalker的答案似乎是正确的。 –