Java 将JSON转换为Hashmap<;字符串,POJO>;使用GWT

Java 将JSON转换为Hashmap<;字符串,POJO>;使用GWT,java,android,json,gwt,mgwt,Java,Android,Json,Gwt,Mgwt,我想将这个字符串转换为上面声明的HashMap。是否有任何方法可以直接从Json字符串转换为Hashmap?使用Gson,您可以在服务器端解析它 { "3": { "Field1": 12, "Field2": "value", "Field3": null }, "test": { "Field1": 20, "Field2": "value", "Field3": "vi

我想将这个字符串转换为上面声明的HashMap。是否有任何方法可以直接从Json字符串转换为Hashmap?

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

 {
    "3": {
        "Field1": 12,
        "Field2": "value",
        "Field3": null
    },
    "test": {
        "Field1": 20,
        "Field2": "value",
        "Field3": "vit"
    }
}
Gson-Gson=new-Gson();
Type Type=new-TypeToken(){}.getType();
Map Map=gson.fromJson(您的字符串,类型);
如果您希望在GWT代码中对JSON进行客户端/服务器端序列化/反序列化

在GWT2.1.1中,您可以使用

字符串序列化为JSON(测试)
{
//检索AutoBean控制器
AutoBean=AutoBeanUtils.getAutoBean(测试);
返回AutoBeanCodex.encode(bean.getPayload();
}
测试反序列化FromJSON(字符串json)
{     
autobeanbean=AutoBeanCodex.decode(myFactory,Test.class,json);
返回bean.as();
} 
我没有尝试过复杂和低层次的地图,你可以去与医生


最后,如果您想使用GWT在客户端对JSON进行反序列化,那么您必须尝试使用

您可以尝试使用google gson或jackson库来实现同样的功能。是的,这是用于服务器端使用GWT对JSON进行反序列化/序列化,而不是用于客户端。@Christian Kuetbach您可以在客户端/服务器端使用GWT AutoBean framework进行反序列化/序列化但我还没有尝试过复杂的Java MapAutoBeans工作,但它们有一些缺陷,特别是当您使用映射或列表时。如果要修改地图的内容,有时需要重新创建bean。您不应该使用具体类型。你应该使用地图界面。事实上,我认为AutoBeans真的有缺陷。如果您想在客户端使用gson,那么您必须尝试这个库
 {
    "3": {
        "Field1": 12,
        "Field2": "value",
        "Field3": null
    },
    "test": {
        "Field1": 20,
        "Field2": "value",
        "Field3": "vit"
    }
}
Gson gson = new Gson();
Type type= new TypeToken<Map<String, VehicleData>>(){}.getType();
Map<String,VehicleData> map = gson.fromJson(Your_JSON_STRING, type);
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();   
}