正则表达式从JSON字符串中提取对象
我有JSON
字符串我想从中使用Regex从中提取字段。 该字段可以是Object
, Array
, String
, int
或任何类型。 我知道另一种方式,例如循环遍历JSON
中的所有键并找到它。 我想知道,这可以使用正则Regex
来实现。 任何帮助都会很棒。
这可以使用正则表达式来实现
不合理,不,因为正则表达式不适合自己解释像JSON这样的结构; 与HTML一样,您需要一个合适的解析器。
相反,使用几个Java库中的任何一个来解析JSON,然后遍历其内容; 在JSON网站的底部有一个列表(我看到Gson使用了很多,但有很多选项)。
它可以通过正则表达式实现,但它根本没用,因为你必须解析自己的变量。
无论如何,假设我们有一个方法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; }
请注意,这只会发现第一次出现,您应该根据需要进行修改。 但是,我建议使用解析器为您解析值。
最好使用JSON反序列化工具(例如Jackson,GSON),获取对象和检查,