我的任务是实现一种方法,将通过JSON对象接收的字符串转换为iCalendar对象(ics)。我找到了iCal4j库并且一直在尝试使用它作为我的解析器。但是,似乎CalendarBuilder采用了InputStream。
我该怎么办?
String response = jsonObj.getString("icalendar");
CalendarBuilder calBuiler = new CalendarBuilder();
Calendar calendar = calBuilder.build("???");
....
编辑:这会有用吗?
public Calendar convertStringtoCalendar(String arg)
{
CalendarBuilder calBuiler = new CalendarBuilder();
InputStream is;
try {
is = new ByteArrayInputStream(arg.getBytes("UTF-8"));
return calBuiler.build(is);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
答案 0 :(得分:1)
通过执行以下操作解决了问题。
public static Component getCalendarEvent(String myCalendarString)
{
try {
StringReader sin = new StringReader(myCalendarString);
CalendarBuilder builder = new CalendarBuilder();
Calendar calendar = builder.build(sin);
return (Component)calendar.getComponent("VEVENT");
} catch (Exception e) {e.printStackTrace();}
return null;
}
答案 1 :(得分:0)
我建议您尝试我的新iCalendar API for Java,名为iCalendarFx。它可以将字符串解析为任何日历元素 - VCALENDAR,VEVENT等
查看您可以在https://github.com/JFXtras/jfxtras/tree/8.0/jfxtras-icalendarfx
下载