1

デシリアライズしようとすると:

{
  "tags": {}
}

の中へ:

public static class Foo
{
    private final Set<URI> tags;

    /**
     * Creates a new Foo entity.
     * <p/>
     * @param tags the room tags
     * @throws NullPointerException if tags is null
     */
    @JsonCreator
    public Foo(@JsonProperty("tags") Set<URI> tags)
    {
        Preconditions.checkNotNull(tags, "tags may not be null");

        this.tags = ImmutableSet.copyOf(tags);
    }

    /**
     * @return the tags
     */
    public Set<URI> getTags()
    {
        return tags;
    }
}

私は得る:

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashSet out of START_OBJECT token
 at [line: 1, column: 2]

これはそのままで機能するべきではありませんか?

4

2 に答える 2

4

これを機能させるには、配列に変換する必要があります。

{
  "tags": []
}

そうでない場合、有効なJSONを使用してタグセット内の複数の要素をどのように表現しますか?

于 2012-06-18T20:23:39.440 に答える
0

私の問題はペイロードのマッピングにありました。次のことを確認してください。

  • フィールドが同じ(ペイロードとオブジェクト)であるか、@JsonPropertyを正しく使用しています
  • フレームワークがフィールドを埋めるために、オブジェクトにセッターを作成する必要があります

お役に立てば幸いです

于 2016-10-26T11:56:00.080 に答える