Я создал приложение для преобразования объекта HashMap в String, его работа отлично, Проблема, с которой я сталкиваюсь, заключается в том, что я хочу снова преобразовать строку HashMap обратно в объект HasMap, когда я попытался что, используя следующий код, я получаю исключение, как показано нижеПреобразование Java String в объект HashMap
Unexpected character ('u' (code 117)): was expecting double-quote to start field name
Может кто-нибудь пожалуйста, скажите мне решение этой
Мой код приведен ниже
Map<String,Object> map = new HashMap<String,Object>();
map.put("userVisible", true);
map.put("userId", "1256");
ObjectMapper mapper = new ObjectMapper();
try {
map = mapper.readValue(map.toString(), new TypeReference<HashMap<String,Object>>(){});
System.out.println(map.get("userId"));
} catch (Exception e) {
e.printStackTrace();
}
Update 1
Как предложено @chrylis я использовал Feature.ALLOW_UNQUOTED_FIELD_NAMES как, как показано ниже, но теперь я получаю следующее исключение
Unexpected character ('=' (code 61)): was expecting a colon to separate field name and value
обновленный код
Map<String,Object> map = new HashMap<String,Object>();
map.put("userVisible", true);
map.put("userId", "1256");
ObjectMapper mapper = new ObjectMapper();
mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
try {
map = mapper.readValue(map.toString(), new TypeReference<HashMap<String,Object>>(){});
System.out.println(map.get("userId"));
} catch (Exception e) {
e.printStackTrace();
}
получение 'Неожиданный символ ('=' (код 61)): ожидал, что двоеточие будет разделять имя и значение поля. –
вы можете показать мне пример –
@AlexMan String json = mapper.writeValueAsString (map); – StaxMan