0

JSON 形式の文字列が返されます。文字列は次のようになります

{ "Type" : "Notification". "MessageId" : "9343.....". "TopicArn" : "arn-....." "......" }

この文字列を解析したいカスタムオブジェクトを作成しました

public class AmazonSNSMessage 
{
private String Type;
private String Notification;
private String MessageId;
private String TopicArn;
private String Subject;
private String Message;
private String Timestamp;
private String SignatureVersion;
private String Signature;
private String UnsubscribeURL

// And all the appropriate get/set methods
}

文字列を取得して AmazonSNSMessage のインスタンスを作成する Java の JSON デシリアライザーはありますか?

C#は、この行を呼び出すことでこれを行います

AmazonSNSMessage b = JsonConvert.DeserializeObject<AmazonSNSMessage>(TheString);

理想的には、似たようなものが欲しいです。

4

4 に答える 4

2

ジャクソンはそれを行うことができます:

final ObjectMapper mapper = new ObjectMapper();

final AmazonSNSMessage message 
    = mapper.readValue(yourInput, AmazonSNSMessage.class);

フィールド名は JSON と同じなので、自動的に機能します。

より複雑なシナリオがある場合は、注釈、カスタム デシリアライザーなどを使用できます。

于 2013-06-12T13:14:25.613 に答える
0

次のライブラリを使用することをお勧めします。

https://code.google.com/p/json-simple/

私はそれを使用しましたが、それはかなり簡単です。

于 2013-06-12T13:15:22.880 に答える
0

fgeが言うように、Jackson はJsonのシリアライゼーションとデシリアライゼーションを処理するための非常に強力なライブラリです。注釈を使用して一貫性のあるキャメル ケースのコードを取得するために、json キーを POJO 属性に非常に適切にマップします。

public class AmazonSNSMessage 
{
    @JsonProperty("Type");
    private String type;

    @JsonProperty("Notification");
    private String notification;

    @JsonProperty("MessageId");
    private String messageId;

    @JsonProperty("TopicArn");
    private String topicArn;

    @JsonProperty("Subject");
    private String subject;

    @JsonProperty("Message");
    private String message;

    @JsonProperty("Timestamp");
    private Date timestamp;

    @JsonProperty("SignatureVersion");
    private String signatureVersion;

    @JsonProperty("Signature");
    private String signature;

    @JsonProperty("UnsuscribeUrl");
    private String unsubscribeURL

    // And all the appropriate get/set methods
}
于 2013-06-12T15:26:51.093 に答える
0

http://code.google.com/p/google-gson/

Gson は、Java オブジェクトを JSON 表現に変換するために使用できる Java ライブラリです。また、JSON 文字列を同等の Java オブジェクトに変換するためにも使用できます。Gson は、ソースコードを持っていない既存のオブジェクトを含む任意の Java オブジェクトを操作できます。

于 2013-06-12T13:19:21.080 に答える