JSONS上的配置单元中的拆分功能

时间:2017-01-15 18:08:36

标签: json regex hive bigdata

我在hive中处理JSON数组。我知道它也可以用JSON serde处理,但我想用get_json_object或json_tuple和正则表达式来处理它。所以我正在关注http://mechanics.flite.com/blog/2014/04/16/using-explode-and-lateral-view-in-hive/

链接

它给出了像这样的Json文件     {"key1":"0","key2":"11.800","info":"[{\"id\":\"1234\",\"v\":\"3\"},{\"id\":\"5678\",\"v\":\"3\"}]","key3":"3"} 为什么需要在id和其他所有值前面都有斜杠?观察结果如下

JSON With REGEX

当我们从上面的结果中得到正则表达式的分割时,我们得到以下内容 ["{\"id\":\"1234\",\"v\":\"3\"}","{\"id\":\"5678\",\"v\":\"3\"}"]

如果我删除源Json文件中的斜杠,那么ebrything将变为null。可能的方法是什么。

1 个答案:

答案 0 :(得分:2)

你看到的对象是有效的JSON,在这种情况下恰好发生了键 info 的值是一个字符串(看起来更像JSON,令人困惑)不是一个对象,数组或数字,但一个字符串。由于此字符串中包含一些双引号,因此它们将被转义。

显示:

JSON.parse(JSON.stringify({"key1":"0","key2":"11.800","info":"[{\"id\":\"1234\",\"v\":\"3\"},{\"id\":\"5678\",\"v\":\"3\"}]","key3":"3"}));

结果:

enter image description here