1

Java HashMap を文字列表現にシリアライズしたいと思います。HashMap には、文字列や整数などのプリミティブ値のみが含まれます。その後、この文字列は db に保存されます。HashMap を元に戻すには? BeanUtils とインターフェイスConverterを使用するか、JSON を使用することは理にかなっていますか?

例えば:

    List list = new ArrayList();
    list.add(new Long(1));
    list.add(new Long(2));
    list.add(new Long(4)); 

    Map map = new HashMap();
    map.put("cityId", new Integer(1));
    map.put("name", "test");
    map.put("float", new Float(-3.2));
    map.put("ids", list);

    map.toString() -> {float=-3.2,ids=[1, 2, 4],name=test,cityId=1}
    map.toJSON ->     {"float":-3.2,"ids":[1,2,4],"name":"test","cityId":1}
4

2 に答える 2

1

JSON またはXStreamを使用します。

于 2010-06-16T11:49:34.030 に答える
0

ジェリー博士は正しいです。あなたがすべきことは、ObjectOutputStream を使用してハッシュ マップをシリアル化することです。これにより、バイトをデータベースの BLOB 型の列に書き込むことができ、それを逆シリアル化して元のオブジェクトに戻すことができます。疲れた決まり文句を再利用するために、なぜ車輪を再発明するのでしょうか? この場合、Java シリアライゼーションを使用したくない特定の理由はありますか?

于 2010-06-16T12:41:50.233 に答える