Как конфертировать из сериализованного объекта в POJO - PullRequest
0 голосов
/ 12 апреля 2019

В моем загрузочном приложении Spring я пытаюсь прочитать объект из поиска Solr.Во время выполнения имя объекта и его свойства возвращаются как String.Как я могу преобразовать строку в соответствующий POJO?

Объект, возвращаемый из Solr:

"Parameters(name=deviceType, value=D22, paramType=CONSTRUCTOR)"

POJO:

@UserDefinedType("parameters")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Parameters implements Serializable {

    private static final long serialVersionUID = -8665215569152413443L;

    private String name;
    private String value;
    @JsonProperty("param_type")
    private String paramType;

}

@Data
@SolrDocument(solrCoreName = ResultConstants.SOLR_CORE_NAME)
public class SolrRecord implements Serializable, Cloneable {

     @Field
     @Indexed(name = PARAMS, type = "text_general")
     private List<Parameters> params;
}
}

Есть ли простой способ воссоздатьобъект из его строкового представления?

Фактический результат:

"Parameters(name=deviceType, value=D22, paramType=CONSTRUCTOR)"

Ожидаемый: объект параметров

Parameters(name=deviceType, value=D22, paramType=CONSTRUCTOR)

1 Ответ

0 голосов
/ 12 апреля 2019

Вам необходимо десериализовать объект.Замените yourString ниже вашей сериализованной строкой объекта.Если сериализованный объект на самом деле является байтом [], передайте его без вызова getBytes ().

InputStream is = new ByteArrayInputStream( yourString.getBytes() );
ObjectInputStream in = new ObjectInputStream (is); 
// deserialization
Parameters object = (Parameters)in.readObject(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...