當使用Google的BigQuery,有一個function可以使用jsonPath從json字符串中提取元素。例如:在Bigquery中跳轉字符json_extract()函數
SELECT JSON_EXTRACT(data,"$.key.value") AS feature FROM tablename
當JSON密鑰本身包含一個圓點,{"key.value":"value"}
目前尚不清楚如何逃脫正常。
這jsonpath message board question說jsonpath本身支持這種格式
@Test
public void path_with_bracket_notation() throws Exception {
String json = "{\"foo.bar\": {\"key\": \"value\"}}";
Assert.assertEquals("value", JsonPath.read(json, "$.['foo.bar'].key"));
然而BigQuery中的這種類型的espcaping嘗試引起Error: JSONPath parse error
錯誤。
我不知道雙轉義作品通過Web界面,查詢分析器,jsonpath和功能。試試這個例子:'SELECT JSON_EXTRACT('{「foo」:{「key」:「value」}}','$ .foo')AS str, JSON_EXTRACT('{「foo.bar」:{「key」 :「value」}}','$ .foo.bar')AS str2;' 使用\\不通過解析器。 – Ereli
@NorbertvanNobelen在問題中的\是創建示例JSON負載的Java語法,而不是實際的jsonpath本身的一部分。 – hraban