【问题标题】:Converting JSON to Hashmap<String, POJO> using GWT使用 GWT 将 JSON 转换为 Hashmap<String, POJO>
【发布时间】:2013-12-04 11:38:29
【问题描述】:
SortedMap<String, VehicleData> hmap = new TreeMap<String, VehicleData>();

我的 JSON 字符串示例:

 {
    "3": {
        "Field1": 12,
        "Field2": "value",
        "Field3": null
    },
    "test": {
        "Field1": 20,
        "Field2": "value",
        "Field3": "vit"
    }
}

我想将此字符串转换为上面声明的 HashMap。有没有什么方法可以直接从Json字符串转成Hashmap?

【问题讨论】:

  • 你可以尝试 google GSON 或 jackson library 来实现同样的效果。

标签: java android json gwt mgwt


【解决方案1】:

使用 Gson,您可以在服务器端轻松解析它。

Gson gson = new Gson();
Type type= new TypeToken<Map<String, VehicleData>>(){}.getType();
Map<String,VehicleData> map = gson.fromJson(Your_JSON_STRING, type);

如果您希望客户端/服务器端在 GWT 代码中序列化/反序列化 JSON。

在 GWT 2.1.1 中,您可以使用 GWT AutoBean framework

String serializeToJson(Test test) 
{
    // Retrieve the AutoBean controller
    AutoBean<Test> bean = AutoBeanUtils.getAutoBean(test);
    return AutoBeanCodex.encode(bean).getPayload();
}

Test deserializeFromJson(String json) 
{     
    AutoBean<Test> bean = AutoBeanCodex.decode(myFactory, Test.class, json);     
    return bean.as();   
} 

我没有尝试过复杂和低级别的地图,你可以使用文档

Finally if you want to gson on client side with GWT then you have to trybGwtGson图书馆

【讨论】:

  • 是的,它用于使用 GWT 的服务器端反序列化/序列化 JSON,而不是用于客户端。
  • @Christian Kuetbach 您可以在客户端/服务器端使用 GWT AutoBean 框架进行反序列化/序列化,但我没有尝试过使用复杂的 Java Map
  • AutoBeans 可以工作,但它们有一些问题,尤其是在您使用地图或列表时。有时您需要重新创建 bean,如果您修改地图的内容。而且您不应该使用具体类型。您应该使用地图接口。事实上,我认为 AutoBeans 确实有问题。
  • 如果你想在客户端使用 gson,那么你必须尝试这个库 github.com/heroandtn3/bGwtGson
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 2013-06-17
  • 2019-02-03
相关资源
最近更新 更多