преобразовать JSONObject в HashMap <String, String> - PullRequest
0 голосов
/ 29 августа 2018

У меня есть 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 ]

0 голосов
/ 29 августа 2018

попробуйте что-то вроде этого:

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);
}
0 голосов
/ 29 августа 2018

Вы можете использовать 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); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...