use*_*397 4 java regex android
我正试图拔出字符串:
[{"name":"John Doe Jr."},{"name2":"John Doe"}] & {"name":"John Doe"}
Run Code Online (Sandbox Code Playgroud)
从下面的JSON字符串中的有效负载:
{"to":"broadcast", "type":"50", "payload":[{"name":"John Doe Jr."},{"name2":"John Doe"}]}
{"to":"broadcast", "type":"50", "payload":{"name":"John Doe"}}
Run Code Online (Sandbox Code Playgroud)
使用这个正则表达式代码:
Pattern pattern = Pattern.compile("\\{(.*?)\"payload\":\"(.*?)\"\\}\\}");
Matcher matcher = pattern.matcher(jsonString);
Run Code Online (Sandbox Code Playgroud)
我收到了IllegalStateException:到目前为止没有成功匹配
我的正则表达式出了什么问题?
另外如何获得它找到的匹配数量?
任何帮助,将不胜感激.
这应该工作:
String someJson ="{\"to\":\"broadcast\", \"type\":\"50\", \"payload\":[{\"name\":\"John Doe Jr.\"},{\"name2\":\"John Doe\"}]}";
Pattern p = Pattern.compile(".*?payload\":(.*)}");
Matcher m = p.matcher(someJson);
if (m.matches()) {
String payload = m.group(1);
}
Run Code Online (Sandbox Code Playgroud)
之后,有效负载将具有值[{"name":"John Doe Jr."},{"name2":"John Doe"}]
或{"name":"John Doe"}
一些说明:
有了机器人,JSONObject
这可能是这样的:
JSONObject json = new JSONObject(someJson);
try {
JSONArray payload = json.getJSONArray("payload");
} catch (Exception e) {
// array conversion can fail for single object
JSONObject payload = json.getJSONObject("payload");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8185 次 |
最近记录: |