Я хочу проанализировать строку Json для Map и использовать ее в существующем приложении.
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
public class ObjectMapperDemo {
public static String applicantJson = "{\\\"lead_id\\\":null,\\\"finder_number\\\":null,\\\"applicant_index\\\":0,\\\"applicant_id\\\":100314,\\\"loan_application_id\\\":3000312,\\\"person\\\":{\\\"lastName[PROTECTED],\\\"firstName\\\":\\\"Cathy\\\",\\\"maternalName[PROTECTED],\\\"middleName\\\":\\\"Kimberly\\\",\\\"dateOfBirth[PROTECTED],\\\"ssn[PROTECTED],\\\"itin[PROTECTED],\\\"last4Ssn[PROTECTED],\\\"last4Itin[PROTECTED],\\\"oktaId\\\":null,\\\"suffix\\\":\\\"Sr\\\",\\\"title\\\":null,\\\"clientId\\\":null,\\\"sipClientId\\\":null,\\\"customerId\\\":null,\\\"inUSSince\\\":null},\\\"email\\\":[{\\\"home\\\":\\\"SwNjh67784@oportun.com\\\"}],\\\"address[PROTECTED],\\\"street[PROTECTED],\\\"street[PROTECTED],\\\"city[PROTECTED],\\\"state\\\":\\\"FL\\\",\\\"postalCode\\\":\\\"33144\\\"}],\\\"identification[PROTECTED],\\\"number[PROTECTED],\\\"expirationDate\\\":\\\"2023-02-02T00:00:00.000Z\\\",\\\"dateOfBirth[PROTECTED],\\\"firstName\\\":\\\"Cathy\\\",\\\"middleName\\\":\\\"Kimberly\\\",\\\"lastName[PROTECTED],\\\"maternalName[PROTECTED],\\\"suffix\\\":\\\"Sr\\\",\\\"issuingCountry\\\":\\\"US\\\",\\\"issuingState\\\":\\\"CA\\\",\\\"issuingCity[PROTECTED],\\\"issueDate\\\":null,\\\"street[PROTECTED],\\\"street[PROTECTED],\\\"postalCode\\\":\\\"94063\\\",\\\"city[PROTECTED],\\\"state\\\":\\\"CA\\\",\\\"country\\\":null}],\\\"phones\\\":[{\\\"phoneNumber\\\":\\\"689-165-2363\\\",\\\"phoneType\\\":\\\"HM\\\"},{\\\"phoneNumber\\\":\\\"332-621-7769\\\",\\\"phoneType\\\":\\\"CL\\\"}]}";
public static Map ConvertValueFromObject(Object obj) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
return objectMapper.convertValue(obj, Map.class);
}
public static void main(String[] args) {
Map testMap = ConvertValueFromObject(applicantJson);
System.out.println(testMap.keySet());
}
}
Стековая трассировка выглядит следующим образом:
Exception in thread "main" java.lang.IllegalArgumentException: Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{\"lead_id\":null,\"finder_number\":null,\"applicant_index\":0,\"applicant_id\":100314,\"loan_application_id\":3000312,\"person\":{\"lastName[PROTECTED],\"firstName\":\"Cathy\",\"maternalName[PROTECTED],\"middleName\":\"Kimberly\",\"dateOfBirth[PROTECTED],\"ssn[PROTECTED],\"itin[PROTECTED],\"last4Ssn[PROTECTED],\"last4Itin[PROTECTED],\"oktaId\":null,\"suffix\":\"Sr\",\"title\":null,\"clientId\":null,\"sipClientId\":null,\"customerId\":null,\"inUSSince\":null},\"email\":[{\"home\":\"SwNjh67784@oportun.com\"}],\"address[PROTECTED],\"street[PROTECTED],\"street[PROTECTED],\"city[PROTECTED],\"state\":\"FL\",\"postalCode\":\"33144\"}],\"identification[PROTECTED],\"number[PROTECTED],\"expirationDate\":\"2023-02-02T00:00:00.000Z\",\"dateOfBirth[PROTECTED],\"firstName\":\"Cathy\",\"middleName\":\"Kimberly\",\"lastName[PROTECTED],\"maternalName[PROTECTED],\"suffix\":\"Sr\",\"issuingCountry\":\"US\",\"issuingState\":\"CA\",\"issuingCity[PROTECTED],\"issueDate\":null,\"street[PROTECTED],\"street[PROTECTED],\"postalCode\":\"94063\",\"city[PROTECTED],\"state\":\"CA\",\"country\":null}],\"phones\":[{\"phoneNumber\":\"689-165-2363\",\"phoneType\":\"HM\"},{\"phoneNumber\":\"332-621-7769\",\"phoneType\":\"CL\"}]}')
at [Source: UNKNOWN; byte offset: #UNKNOWN]
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4394)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4325)
at ObjectMapperDemo.ConvertValueFromObject(ObjectMapperDemo.java:19)
at ObjectMapperDemo.main(ObjectMapperDemo.java:25)
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{\"lead_id\":null,\"finder_number\":null,\"applicant_index\":0,\"applicant_id\":100314,\"loan_application_id\":3000312,\"person\":{\"lastName[PROTECTED],\"firstName\":\"Cathy\",\"maternalName[PROTECTED],\"middleName\":\"Kimberly\",\"dateOfBirth[PROTECTED],\"ssn[PROTECTED],\"itin[PROTECTED],\"last4Ssn[PROTECTED],\"last4Itin[PROTECTED],\"oktaId\":null,\"suffix\":\"Sr\",\"title\":null,\"clientId\":null,\"sipClientId\":null,\"customerId\":null,\"inUSSince\":null},\"email\":[{\"home\":\"SwNjh67784@oportun.com\"}],\"address[PROTECTED],\"street[PROTECTED],\"street[PROTECTED],\"city[PROTECTED],\"state\":\"FL\",\"postalCode\":\"33144\"}],\"identification[PROTECTED],\"number[PROTECTED],\"expirationDate\":\"2023-02-02T00:00:00.000Z\",\"dateOfBirth[PROTECTED],\"firstName\":\"Cathy\",\"middleName\":\"Kimberly\",\"lastName[PROTECTED],\"maternalName[PROTECTED],\"suffix\":\"Sr\",\"issuingCountry\":\"US\",\"issuingState\":\"CA\",\"issuingCity[PROTECTED],\"issueDate\":null,\"street[PROTECTED],\"street[PROTECTED],\"postalCode\":\"94063\",\"city[PROTECTED],\"state\":\"CA\",\"country\":null}],\"phones\":[{\"phoneNumber\":\"689-165-2363\",\"phoneType\":\"HM\"},{\"phoneNumber\":\"332-621-7769\",\"phoneType\":\"CL\"}]}')
at [Source: UNKNOWN; byte offset: #UNKNOWN]
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1728)
at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1353)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromString(StdDeserializer.java:311)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:444)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4389)
... 3 more
Я даже пытался передать строку как объект
Map testMap = ConvertValueFromObject((Object) applicantJson);
Подробнее здесь: https://stackoverflow.com/questions/695 ... as-hashmap
Джексон ObjectMapper не может анализировать строку как хэш-карту ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1720072182
Anonymous
Я хочу проанализировать строку Json для Map и использовать ее в существующем приложении.
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
public class ObjectMapperDemo {
public static String applicantJson = "{\\\"lead_id\\\":null,\\\"finder_number\\\":null,\\\"applicant_index\\\":0,\\\"applicant_id\\\":100314,\\\"loan_application_id\\\":3000312,\\\"person\\\":{\\\"lastName[PROTECTED],\\\"firstName\\\":\\\"Cathy\\\",\\\"maternalName[PROTECTED],\\\"middleName\\\":\\\"Kimberly\\\",\\\"dateOfBirth[PROTECTED],\\\"ssn[PROTECTED],\\\"itin[PROTECTED],\\\"last4Ssn[PROTECTED],\\\"last4Itin[PROTECTED],\\\"oktaId\\\":null,\\\"suffix\\\":\\\"Sr\\\",\\\"title\\\":null,\\\"clientId\\\":null,\\\"sipClientId\\\":null,\\\"customerId\\\":null,\\\"inUSSince\\\":null},\\\"email\\\":[{\\\"home\\\":\\\"SwNjh67784@oportun.com\\\"}],\\\"address[PROTECTED],\\\"street[PROTECTED],\\\"street[PROTECTED],\\\"city[PROTECTED],\\\"state\\\":\\\"FL\\\",\\\"postalCode\\\":\\\"33144\\\"}],\\\"identification[PROTECTED],\\\"number[PROTECTED],\\\"expirationDate\\\":\\\"2023-02-02T00:00:00.000Z\\\",\\\"dateOfBirth[PROTECTED],\\\"firstName\\\":\\\"Cathy\\\",\\\"middleName\\\":\\\"Kimberly\\\",\\\"lastName[PROTECTED],\\\"maternalName[PROTECTED],\\\"suffix\\\":\\\"Sr\\\",\\\"issuingCountry\\\":\\\"US\\\",\\\"issuingState\\\":\\\"CA\\\",\\\"issuingCity[PROTECTED],\\\"issueDate\\\":null,\\\"street[PROTECTED],\\\"street[PROTECTED],\\\"postalCode\\\":\\\"94063\\\",\\\"city[PROTECTED],\\\"state\\\":\\\"CA\\\",\\\"country\\\":null}],\\\"phones\\\":[{\\\"phoneNumber\\\":\\\"689-165-2363\\\",\\\"phoneType\\\":\\\"HM\\\"},{\\\"phoneNumber\\\":\\\"332-621-7769\\\",\\\"phoneType\\\":\\\"CL\\\"}]}";
public static Map ConvertValueFromObject(Object obj) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
return objectMapper.convertValue(obj, Map.class);
}
public static void main(String[] args) {
Map testMap = ConvertValueFromObject(applicantJson);
System.out.println(testMap.keySet());
}
}
Стековая трассировка выглядит следующим образом:
Exception in thread "main" java.lang.IllegalArgumentException: Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{\"lead_id\":null,\"finder_number\":null,\"applicant_index\":0,\"applicant_id\":100314,\"loan_application_id\":3000312,\"person\":{\"lastName[PROTECTED],\"firstName\":\"Cathy\",\"maternalName[PROTECTED],\"middleName\":\"Kimberly\",\"dateOfBirth[PROTECTED],\"ssn[PROTECTED],\"itin[PROTECTED],\"last4Ssn[PROTECTED],\"last4Itin[PROTECTED],\"oktaId\":null,\"suffix\":\"Sr\",\"title\":null,\"clientId\":null,\"sipClientId\":null,\"customerId\":null,\"inUSSince\":null},\"email\":[{\"home\":\"SwNjh67784@oportun.com\"}],\"address[PROTECTED],\"street[PROTECTED],\"street[PROTECTED],\"city[PROTECTED],\"state\":\"FL\",\"postalCode\":\"33144\"}],\"identification[PROTECTED],\"number[PROTECTED],\"expirationDate\":\"2023-02-02T00:00:00.000Z\",\"dateOfBirth[PROTECTED],\"firstName\":\"Cathy\",\"middleName\":\"Kimberly\",\"lastName[PROTECTED],\"maternalName[PROTECTED],\"suffix\":\"Sr\",\"issuingCountry\":\"US\",\"issuingState\":\"CA\",\"issuingCity[PROTECTED],\"issueDate\":null,\"street[PROTECTED],\"street[PROTECTED],\"postalCode\":\"94063\",\"city[PROTECTED],\"state\":\"CA\",\"country\":null}],\"phones\":[{\"phoneNumber\":\"689-165-2363\",\"phoneType\":\"HM\"},{\"phoneNumber\":\"332-621-7769\",\"phoneType\":\"CL\"}]}')
at [Source: UNKNOWN; byte offset: #UNKNOWN]
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4394)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4325)
at ObjectMapperDemo.ConvertValueFromObject(ObjectMapperDemo.java:19)
at ObjectMapperDemo.main(ObjectMapperDemo.java:25)
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{\"lead_id\":null,\"finder_number\":null,\"applicant_index\":0,\"applicant_id\":100314,\"loan_application_id\":3000312,\"person\":{\"lastName[PROTECTED],\"firstName\":\"Cathy\",\"maternalName[PROTECTED],\"middleName\":\"Kimberly\",\"dateOfBirth[PROTECTED],\"ssn[PROTECTED],\"itin[PROTECTED],\"last4Ssn[PROTECTED],\"last4Itin[PROTECTED],\"oktaId\":null,\"suffix\":\"Sr\",\"title\":null,\"clientId\":null,\"sipClientId\":null,\"customerId\":null,\"inUSSince\":null},\"email\":[{\"home\":\"SwNjh67784@oportun.com\"}],\"address[PROTECTED],\"street[PROTECTED],\"street[PROTECTED],\"city[PROTECTED],\"state\":\"FL\",\"postalCode\":\"33144\"}],\"identification[PROTECTED],\"number[PROTECTED],\"expirationDate\":\"2023-02-02T00:00:00.000Z\",\"dateOfBirth[PROTECTED],\"firstName\":\"Cathy\",\"middleName\":\"Kimberly\",\"lastName[PROTECTED],\"maternalName[PROTECTED],\"suffix\":\"Sr\",\"issuingCountry\":\"US\",\"issuingState\":\"CA\",\"issuingCity[PROTECTED],\"issueDate\":null,\"street[PROTECTED],\"street[PROTECTED],\"postalCode\":\"94063\",\"city[PROTECTED],\"state\":\"CA\",\"country\":null}],\"phones\":[{\"phoneNumber\":\"689-165-2363\",\"phoneType\":\"HM\"},{\"phoneNumber\":\"332-621-7769\",\"phoneType\":\"CL\"}]}')
at [Source: UNKNOWN; byte offset: #UNKNOWN]
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1728)
at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1353)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromString(StdDeserializer.java:311)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:444)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4389)
... 3 more
Я даже пытался передать строку как объект
Map testMap = ConvertValueFromObject((Object) applicantJson);
Подробнее здесь: [url]https://stackoverflow.com/questions/69578254/jackson-objectmapper-not-able-to-parse-string-as-hashmap[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия