0

我有一个休息类将 JSON 字符串发送到 POST 请求。数据以 UTF-8 格式存储在数据库中。但是非英文字符总是显示为'??????',如果我从@Model 获取记录,一切正常。这是其余的代码快照(使用简单的 JSON 编码 JSON 字符串):

@POST
@Path("/holidaylist")
@Produces(MediaType.APPLICATION_JSON)
public String getHoliday(){

    List list = new LinkedList();
    // Get list of holidays
    List<Holiday> holidays = em.createQuery("SELECT holiday FROM Holiday holiday").getResultList();

    Map event;
    for(Holiday holiday : holidays){
        System.out.println("======== Holiday name: " + holiday.getHolidayName());
        event = new HashMap();
        event.put("id", holiday.getHolidayId());
        event.put("title", holiday.getHolidayName());
        event.put("start", holiday.getStartDate().toString());

        list.add(event);
    }

    return JSONValue.toJSONString(list);
}

先谢谢了。

4

2 回答 2

1

您需要确保从数据库到前端始终正确处理数据编码。我对 SimpleJSON api 并不完全熟悉,但确定 toJSONString 使用 UTF-8 编码吗?另外,请确保您呈现的页面

于 2013-01-13T08:38:49.073 回答
0

通过使用 JAXB 实现解决。似乎是简单的 JSON 编码问题。

感谢大家。

于 2013-01-13T09:24:50.617 回答