title: built_value deserialize got error " type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Iterable<dynamic>' in type cast"
body: <p>my model:</p>
  
  <pre><code>abstract class Post implements Built&lt;Post, PostBuilder&gt; {
      static Serializer&lt;Post&gt; get serializer =&gt; _$postSerializer;
      int get userId;
      int get id;
      String get title;
      String get body;
      factory Post([updates(PostBuilder b)]) = _$Post;
      Post._();
  }
  </code></pre>
  
  <p>my reqest:</p>
  
  <pre><code>Future&lt;Post&gt; getPostById(int id) async {
      final resp = await http.get('https://jsonplaceholder.typicode.com/posts/${id}');  
      if(resp.statusCode == 200) {
          return serializers.deserializeWith(Post.serializer, json.decode(resp.body));
      }else {
          throw Exception('Failed to load post');
      }
  }
  </code></pre>
  
  <p>and the breakpoint in source code at:</p>
  
  <pre><code> if (serializer is StructuredSerializer) {
      try {
        // ===&gt; HERE
        return serializer.deserialize(this, object as Iterable,
            specifiedType: specifiedType);
      } on Error catch (error) {
        throw new DeserializationError(object, specifiedType, error);
      }
  
   }else if(serializer is PrimitiveSerializer) {
       //...
   }
  </code></pre>
  
  <p>the Error:</p>
  
  <blockquote>
    <p>Exception has occurred.
    Deserializing '{userId: 1, id: 3, title: ea molestias quasi exercitationem repellat qui ipsa...' to 'Post' failed due to: type '_InternalLinkedHashMap' is not a subtype of type 'Iterable' in type cast</p>
  </blockquote>
  
  <p>my question is where I'm wrong with the type definition or deserialization usage, and, I got a single object in response.body(a Map), why the code exectue at <code>as Iterable</code> but not <code>PrimitiveSerializer</code> directive.</p>