0

JSON文字列をPOSTリクエストに送信するための安らかなクラスがあります。データはUTF-8形式でDBに格納されます。ただし、英語以外の文字は常に「??????」と表示されます。@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

DB からフロントエンドに至るまで、データのエンコーディングを適切に処理する必要があります。私は SimpleJSON API に完全に精通しているわけではありませんが、toJSONString が UTF-8 エンコーディングを使用していることは確かですか? また、レンダリングするページを確認してください

于 2013-01-13T08:38:49.073 に答える
0

JAXB実装で解決。単純な JSON エンコーディングの問題のようです。

みんな、ありがとう。

于 2013-01-13T09:24:50.617 に答える