我有一个JSON字符串,我想提取我需要关心的信息.我想要的是从JSON字符串中提取键'name'的值,可能有多个'name'条目.
例如,JSON字符串是:
{"key1":"value1","key2":"value2","key3":"value3","name":"allen","detail":{"detailkey1":"detailvalue2","name":"john","detailkey2":"detailvalue2"}}
Run Code Online (Sandbox Code Playgroud)
我需要从这个JSON字符串中提取'allen'和'john'.
我对正则表达式并不熟悉,希望有人可以提供帮助.
如果您可以在java中提供示例代码,那就太棒了.
谢谢
更新:感谢大家的回复,我只是自己尝试了,实际上它非常简单.复制下面的代码
final String mydata = "{\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":\"value3\",\"name\":\"allen\",\"detail\":{\"detailkey1\":\"detailvalue2\",\"name\":\"john\",\"detailkey2\":\"detailvalue2\"}}";
final Pattern pattern = Pattern.compile("\"name\":\"(.*?)\"");
final Matcher matcher = pattern.matcher(mydata);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
Run Code Online (Sandbox Code Playgroud)
我建议使用任何JSON解析器解析它.以下是使用Java org.json解析器的方法.
JSONObject jsonObject = new JSONObject(jsonString);
System.out.println(jsonObject.getString("name")); // allen
JSONObject detail = jsonObject.getJSONObject("detail");
System.out.println(detail.getString("name")); // john
Run Code Online (Sandbox Code Playgroud)
要支持多个名称,您需要一个嵌入式JSON数组,而不是重复键.
JSONObject jsonObj = new JSONObject("{\"name\": [\"Mike Ross\", \"Rachel Zane\"]}");
System.out.println(jsonObj.getJSONArray("name").getString(1)); // Rachel Zane
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |