2013-06-12 2 views
0

JSON으로 포맷 된 문자열이 반환됩니다. 내가JSON 문자열을 사용자 정의 Java 객체로 직렬화 해제

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 
} 

에이 문자열을 구문 분석하고자하는 사용자 정의 개체를 만든

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

을 다음과 같이 문자열은 문자열을 가지고 인스턴스를 생성합니다 자바에서 JSON 디시리얼라이저는 거기에 보이는 AmazonSNSMessage?

C#을이 라인을

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

를 호출하여이 작업을 수행하고 이상적으로 나는 비슷한 싶습니다.

답변

1

Jackson 그 작업을 수행 할 수 있습니다

final ObjectMapper mapper = new ObjectMapper(); 

final AmazonSNSMessage message 
    = mapper.readValue(yourInput, AmazonSNSMessage.class); 
그것은 당신의 필드 이름부터 자동으로 작동합니다

는 JSON과 동일합니다!

더 복잡한 시나리오가있는 경우, 당신이 사용할 수있는 주석, 사용자 정의 디시리얼라이저 등

0
내가 다음 라이브러리를 사용하는 것이 좋습니다 것

,

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

내가 그것을 사용하고, 그것은 매우 간단합니다 .

0

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

는 GSON 자바가 JSON 표현으로 개체로 변환하는 데 사용할 수있는 자바 라이브러리입니다. JSON 문자열을 동등한 Java 객체로 변환하는데도 사용할 수 있습니다. Gson은 소스 코드가없는 기존 오브젝트를 포함하여 임의의 Java 오브젝트에 대해 작업 할 수 있습니다.

0

코멘트 모드는 fge으로 말합니다. Jackson은 Json 직렬화 및 직렬화 해제를 처리하는 매우 강력한 라이브러리입니다. POJO 속성에 대한 아주 멋진 map json 키는 주석을 사용하여 일관된 낙타 사례 코드를 얻습니다.

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 
} 
관련 문제