Hive和get_json_object奇怪的行为

时间:2011-10-05 10:57:10

标签: json hive

我正在使用get_json_object运行hive查询来从HDFS中的文件中读取json字符串。 我碰到了一些奇怪的行为: 如果json如下:

{"data":{"oneSlash":"aaa\bbb","twoSlashes":"ccc\\ddd","threeSlashes":"eee\\\fff"}}

查询结果为:

{"oneSlash":"aaabbb","twoSlashes":"ccc\\ddd","threeSlashes":"eee\\fff"}

我理解'oneSlash'和'threeSlashes'结果,但为什么'twoSlashes'不等于“ccc \ ddd”? 毕竟'\'应该转义为'\'

问题是:问题是:

SELECT get_json_object(escaping_test.data, '$.data') FROM escaping_test

1 个答案:

答案 0 :(得分:1)

这是因为\ b和\ f是有效的转义字符,而\ d不是。有一篇关于此更详细的帖子:Where can I find a list of escape characters required for my JSON ajax return type?