1

我的任务是实现一种将通过 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;
}
4

2 回答 2

2

通过执行以下操作解决了问题。

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;
}
于 2012-06-01T06:49:52.863 回答
0

我建议您尝试我的新 iCalendar API for Java,称为 iCalendarFx。它可以将字符串解析为任何日历元素 - VCALENDAR、VEVENT 等。

您可以在http://jfxtras.org/上查看

您可以在https://github.com/JFXtras/jfxtras/tree/8.0/jfxtras-icalendarfx下载它

于 2016-11-03T01:47:38.097 回答