2017-12-06 5 views
0

built_value polymorphism example에 같은 동물의 클래스 계층 구조를 감안할 때 :built_value 및 StandardJsonPlugin을 사용하여 다형성 객체의 목록을 직렬화하는 방법은 무엇입니까?

Animal 
    - Cat 
    - Fish 

은 내가 동물의 종류를 싶습니다 (드) JSON

class Zoo implements Built<Zoo, ZooBuilder> { 
    static Serializer<Zoo> get serializer => _$zooSerializer; 
    BuiltList<Animal> animals; 
} 

을 동물의 목록을 직렬화 할 수 있도록하려면 각 항목에 인코딩됩니다. 예를 들어 json 출력은 다음과 같이 표시 될 수 있습니다.

{ 
"animals": [ 
    {"type": "cat", "legs": 2}, 
    {"type": "fish", "fins": 3} 
]} 

답변

1

편집 :이 질문에 대한 답변은 오래된 것입니다. StandardJsonPlugin은 4.5.0 버전에서 즉시 다형성을 지원합니다.

StandardJsonPlugin은 현재 다형성을 지원하지 않습니다. 워드 프로세서에 따르면

https://github.com/google/built_value.dart/issues/92

질문 하나 : 당신이 처음에 StandardJsonPlugin 필요 왜

/// The default serialization format is more powerful, supporting polymorphism 
/// and more collection types. 

이 문제 "자신감/OpenAPI를 지원하는"StandardJsonPlugin에 추가 다형성 지원을 포함 ? 사용을 중지하면 다형성 지원이 가능합니다.

+0

StandardJsonPlugin을 사용하여 서버 측의 문서 데이터베이스에 저장할 수있는 맵이 필요합니다. 예를 들어 데이터베이스의 데이터에 인덱스를 만들 수 있습니다. 내가 알기에, 기본 serializer를 사용하면 개체 목록 만 얻을 수 있습니다. –

+0

소리가 적당합니다. 실제 사용 사례를 가진 사람과 가능성을 조사하는 것이 좋습니다. github 계정이 있으면 https://github.com/google/built_value.dart/issues에서 문제를 제기 할 수 있습니까? –

+0

Ive가 버그를 생성 한 곳 : https://github.com/google/built_value.dart/issues/276 –