2017-01-13 3 views
0

업로드 된 이미지의 메타 데이터를 직렬화하여 데이터베이스에 유지할 수 있습니다. 이 제외metadata-extractor-dotnet을 직렬화 및 비 직렬화

(IReadOnlyList<MetadataExtractor.Directory>)JsonConvert.DeserializeObject(metadata) 

:리스트 이후

An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll but was not handled in user code 

Additional information: Could not create an instance of type MetadataExtractor.Directory. Type is an interface or abstract class and cannot be instantiated. Path '[0].Name', line 1, position 9. 

그러나 탈 직렬화 실패 -

이 Newtonsoft (JSON.NET)에서 사용자 JsonConverter를 이용하여 데이터를 직렬화 가능성 디렉토리가 특정 객체에 따라 달라질 수 있으므로 디렉토리를 개별적으로 직렬화/비순환화하는 것이 쉽지 않은지 의심 스럽습니다.

나중에 다시 사용할 수있는 형식으로 업로드 된 이미지의 메타 데이터 부분 만 저장하는 방법에 대한 간단한 제안 사항은 무엇입니까?

+0

메타 데이터가 같이 어떻게 보는가? 너무 게시 할 수 있습니까? – Mahdi

답변

0

메타 데이터 추출기는 직렬화를 지원하지 않지만 지금은 Java 버전에 active issue이 있습니다.

여기에도 문제가 있습니다. 데이터를 직렬화하려는 이유에 따라 문제가 있습니다. 완전한 충실도가 필요한 경우 몇 가지 속성 설명을 저장/복원하려는 경우보다 훨씬 효과적입니다. 닮은 XML을 생성 할

var doc = new XDocument(
    new XElement("Metadata", 
     directories.Select(directory => 
      new XElement("Directory", 
       new XAttribute("Name", directory.Name), 
       directory.Tags.Select(tag => 
        new XElement("Tag", 
         new XAttribute("Id", tag.Type.ToString("X"), 
         new XAttribute("Name", tag.Name), 
         tag.Description)))))); 

이 :

당신은 같은 것을 사용하여 XML과 같은 설명을 쓸 수

<Metadata> 
    <Directory Name="Exif IFD0"> 
    <Tag Id="10F" Name="Make">NIKON</Tag> 
    <Tag Id="110" Name="Model">COOLPIX P340</Tag> 
    ... 
+0

감사합니다. 업로드 된 이미지를 데이터베이스에 저장하고 메타 데이터를 먼저 구문 분석합니다. 내 이유는 시간이 지남에 내 모델에 필요한 속성이 무엇인지 확실하지 않기 때문에 전체 이미지를 다시 가져 오지 않고도 메타 데이터를 쉽게 다시 가져올 수있는 방법을 원했습니다. – kbjorn

관련 문제