1

json を抽象型に逆シリアル化しようとすると、エラーが発生します。

コード:

@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class")
public abstract class Animal
{
}

public class Dog extends Animal
{
}

public class Zoo
{
    Animal a;
}

@RequestMapping(value = "/zoos", method = RequestMethod.POST)
public void create(@RequestBody Zoo zoo)
{
  ...
}

次のjsonを動物園に投稿すると:

{
    "@class": "com.example.Dog",
    "a": {}
}

次のエラーが表示されます: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "@class" (Class com.example.Zoo), not marked as ignorable

私は何を間違っていますか?

4

1 に答える 1

2

わかりました、私はばかです:

json は次のようになります。

{   
    "a": {
        "@class": "com.example.Dog"
     }
}

@class は動物型に属しているためです。

于 2013-03-26T18:54:50.997 に答える