2014-10-08 2 views
0

Java를 사용하여 neo4j에서 객체를 노드 속성 (문자열 유형)으로 직렬화해야합니다. 일부 변환기/직렬 변환기를 적용 할 수 있습니까? 다음이 당신을 위해 매우 쉽게neo4j 노드의 직렬화 된 속성

난 당신이 SDN을 사용하는 경우 .NET 신 클라이언트가 JsonConverter

+1

환경에 대해 더 알려 줄 수 있습니까? 예 : 봄을 사용하고 있습니까? Jackson (https://github.com/FasterXML/jackson)과 같은 라이브러리를 찾고 있습니까 – JohnMark13

+0

Neo4J와 스프링 통합을 사용하고 있습니다. – Fagoter

답변

2

같은 뭔가를 알고 (그리고 프록시에 의해 나는 스프링 프레임 워크의 나머지 부분을 가정).

import org.springframework.core.convert.converter.Converter 

public class YourPropertyTypeToStringConverter 
    implements Converter<YourPropertyType, String> { 

    @Override 
    public String convert(final YourPropertyType source) { 
     //some code that takes your object and returns a String 
    } 
} 

을 그리고 또 다시 다시 변환 : 첫째로 당신은 문자열로 데이터를 변환합니다 귀하의 재산에 대한 변환기를 작성해야합니다 (Spring documentation의 7.5 절 참조)

public class StringToYourPropertyTypeConverter 
    implements Converter<String, YourPropertyType> { 

    @Override 
    public YourPropertyType convert(final String source) { 
     //some code that takes a String and returns an object of your type 
    } 
} 

그런 당신에게 일부 구성을 추가하여 스프링 프레임 워크 변환을 가능하게해야하는 것은 :

<bean id="conversionService" 
     class="org.springframework.context.support.ConversionServiceFactoryBean"> 
    <property name="converters"> 
     <set> 
      <bean class="your.package.YourPropertyTypeToStringConverter"/> 
      <bean class="your.package.StringToYourPropertyTypeConverter"/> 
     </set> 
    </property> 
</bean> 

당신의 @NodeEntity 주석이 수업 시간에 당신은 @GraphProperty annota을 추가 할 수 있습니다 형태로 변환을 필요로하는 분야에 기 :

@GraphProperty(propertyType = String.class) 

이제 컨버터는 당신이 양방향으로 변환 할 수 있습니다대로만큼 좋아하는 무엇이든 할 수 있지만, 당신은 잭슨을 사용하여 JSON을 위해 특별히 사소한 예를 물었다.

프로젝트에 잭슨을 포함 :

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.3.3</version> 
</dependency> 

문자열로 클래스에서 변환하려면 : 다시

ObjectMapper mapper = new ObjectMapper(); 
String json = mapper.writeValueAsString(yourObject); 

과 : 분명히

YourPropertyType deserialised = mapper.readValue(json, YourPropertyType.class); 

구성 할 수있는 많은, GitHub에 관한 문서가 있습니다.

관련 문제