我是Java新手。请帮我。我在下面的JSON响应中遇到问题:
{"GetResult":"{ \"IsDate\": [ { \"Code\": \"200\" }, { \"Message\": \"Fetched successfully\" }, { \"ID\": \"722c8190c\", \"Name\": \"Recruitment\", \"Path\": \"URL\", \"Date\": \"14 May, 2013\" }, ]}"}
它是格式错误的JSON对象。因此,我正在使用匹配模式来获取
Name
,Path
和Date
的数据,并成功获取Name
和Path
,如下所示: Matcher matcherName = Pattern.compile("\\\\\"Name\\\\\":\\s\\\\\"[^,}\\]]+\\\\\"").matcher(Name);
Matcher matcherPath = Pattern.compile("\\\\\"Path\\\\\":\\s\\\\\"^[^,}\\]]+\\\\\"").matcher(Path);
因此,从以上几行中,我就能得到
Path
和Name
。因此,请帮助您获取Date
。 Date is 14 May, 2013
的格式。请帮我。 最佳答案
Matcher与您的问题几乎相同:
Matcher matcherDate = Pattern.compile("\\\\\"Date\\\\\":\\s\\\\\"([^\\\\]*)\\\\\"").matcher(brokenJson);
while (matcherDate.find()) {
System.out.println(matcherDate.group(1));
}
然后您可以使用
SimpleDateFormat
解析日期更新。完整的代码从文件中读取brokenJson并进行解析:
String brokenJson = Files.toString(new File("1.dat"), Charset.defaultCharset());
Matcher matcherDate = Pattern.compile("\\\\\"Date\\\\\":\\s\\\\\"([^\\\\]*)\\\\\"").matcher(brokenJson);
while (matcherDate.find()) {
System.out.println(matcherDate.group(1));
}