正则表达式从JSON字符串中提取对象

时间:2014-10-23 09:40:01

标签: java regex json string

我有JSON字符串我想从中使用Regex从中提取字段。该字段可以是ObjectArrayStringint或任何类型。我知道另一种方式,例如循环遍历JSON中的所有键并找到它。我想知道,这可以使用Regex来实现。任何帮助都会很棒。

3 个答案:

答案 0 :(得分:3)

  

这可以使用正则表达式来实现

不合理,不,因为正则表达式不适合自己解释像JSON这样的结构;与HTML一样,您需要一个合适的解析器。

相反,使用几个Java库中的任何一个来解析JSON,然后遍历其内容;在the JSON site的底部有一个列表(我看到Gson使用了很多,但有很多选项)。

答案 1 :(得分:1)

它可以通过正则表达式实现,但它根本没用,因为你必须解析自己的变量。

无论如何,我们假设我们有一个方法getObject(String key, String JSON)

public String getObject(String key, String JSON) {
   Pattern p = Pattern.compile(String.format("\"%s\":\\s*(.*),", key));
   Matcher matcher = pattern.matcher(JSON);
   if(matcher.find())
      return matcher.group();
   return null;
}

请注意,这只会发现第一次出现,您应该根据自己的需要进行修改。 但是,我建议使用解析器为您解析值。

答案 2 :(得分:0)

最好使用JSON反序列化工具(例如Jackson,GSON),获取对象并检查,