0

クライアント側での日付の逆シリアル化に問題があります。JSON を使用する単純なデスクトップ Java アプリケーションを構築する必要があります。私のコード:

ClientConfig config = new DefaultClientConfig();
config.getClasses().add(JacksonJsonProvider.class); 
Client client = Client.create(config);

このソリューションを使用しようとしましたが、うまくいきません: How to deserialize JS date using Jackson?

「dd.MM.yyyy.」という形式の日付が必要ですが、何があっても常にこのエラーが発生します。

Can not construct instance of java.util.Date from String value '12.10.1971.': not a valid representation (error: Can not parse date "12.10.1971.": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))

ご協力ありがとうございました。

4

1 に答える 1

0

リンクされた回答が機能するはずだとまだ考えていますが、ここに別の方法があります。

取得するモデルの Java オブジェクトを作成します。

2つのフィールドを持つアイテムだとしましょう:

public class Item {
    private String name;
    private String lastModified;

    public Item() {}

    public String getName() {
        return name;
    }

    public Item setName(String name) {
        this.name = name;
        return this;
    }

    public String getLastModified() {
        return lastModified;
    }

    public Modifiable setLastModified(String lastModified) {
        this.lastModified = lastModified;
        return this;
    }
}

ジャクソンはコードを調べて、それが日付オブジェクトではなく文字列であることを知っているため、それを解析しようとしません。自分で解析するよりも可能です。

これが醜い場合は、lastModified を日付として内部的に保持できます。Jackson は、日付が見つからない場合、パラメータとして文字列を使用する「ファクトリ」メソッドを探しているためです。

于 2012-11-13T08:10:41.807 に答える