为了账号安全,请及时绑定邮箱和手机立即绑定

java - 将 JSONObject 转换为 HashMap<String, String>

java - 将 JSONObject 转换为 HashMap<String, String>

米琪卡哇伊 2021-08-19 16:12:10
我有一个JSONObject这样的结构:"data": {   "title": "Pool Party",   "date": {       "start": "2018-08-14T15:44:44.625Z",       "end": "2018-08-14T18:44:44.625Z"}我想把它转换成HashMap<String, String>对于“日期”字段下的“开始”和“结束”字段,有没有一种方法可以以相同的方式构建地图?我尝试使用Gson如下方式转换它:Type type = new TypeToken<Map<String, String>>(){}.getType();HashMap<String, String> params = Gson().fromJson(jsonString, type);但我收到了这个错误:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT可能是因为我的JSON字符串的结构有没有办法得到这样的东西?谢谢您的帮助。
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

您可以使用 ObjectMapper 来转换它。


public void testJackson() throws IOException {  

    ObjectMapper mapper = new ObjectMapper(); 

    String json = "{"data": {"title": "Pool Party","date": {"start": "2018-08-14T15:44:44.625Z", "end": "2018-08-14T18:44:44.625Z"}}}"; 

    TypeReference<HashMap<String,Object>> typeRef 

            = new TypeReference<HashMap<String,Object>>() {};


    HashMap<String,Object> o = mapper.readValue(from, typeRef); 

    System.out.println("Got " + o); 

}


查看完整回答
反对 回复 2021-08-19
?
LEATH

TA贡献1936条经验 获得超6个赞

尝试这样的事情:


public void testJackson() throws IOException {

    ObjectMapper mapper = new ObjectMapper();

    String json = "{\"data\": {\"title\": \"Pool Party\",\"date\": {\"start\":\"2018-08-14T15:44:44.625Z\", \"end\":\"2018-08-14T18:44:44.625Z\"}}}";

    TypeReference<HashMap<String, Object>> typeRef = new TypeReference<HashMap<String, Object>>() {

    };

    HashMap<String, Object> o = mapper.readValue(from, typeRef);

    System.out.println("Got " + o);

}


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 336 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信