每次我嘗試做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的答案似乎是正確的。 –