2017-06-22 74 views
0

下面是API JSON字符串返回:如何使用Java中的GSON轉換JSON對象?

{"id":1,"bps_id":"C199","summary":{"as_of_date":"2017-06-20","bp_earned":0,"bp_balance":"199400","bp_redeemed":"600"},"bps_message":{"eng":"mobile testing message","chi":"mobile testing message chi"},"bps_image":"https:\/\/mydomain.com\/images\/eng\/promotion\/C199_MH.gif","error_message":{"eng":"","chi":""},"error_flags":""} 

而且我已經創建了一個對象是:

public class SummaryResponse { 

    String bps_id; 
    String bps_image; 
    String bps_message; 
    String as_of_date; 
    String bp_earned; 
    String bp_redeemed; 
    String bp_balance; 

    public String getBps_image() { 
     return bps_image; 
    } 

    public LangResponse getBps_message() { 
     return bps_message; 
    } 

    public String getAs_of_date() { 
     return as_of_date; 
    } 

    public String getBp_earned() { 
     return bp_earned; 
    } 

    public String getBp_redeemed() { 
     return bp_redeemed; 
    } 

    public String getBp_balance() { 
     return bp_balance; 
    } 
} 

它不會轉換爲專家,因爲有字符串裏面的一些JSON對象,如何轉換呢?感謝您的幫助。

回答

1

您可以創建這樣,

public class SummaryResponse { 

    public String id; 
    public String bps_id; 

    public Summary summary; 
    public Message bps_message; 
    public String bps_image; 
    public Message error_message; 
    public String error_flags; 

    class Summary { 
     public String as_of_date; 
     public int bp_earned; 
     public String bp_balance; 
     public String bp_redeemed; 
    } 

    class Message { 
     public String eng; 
     public String chi; 
    } 
} 

,你可以這樣調用。

SummaryResponse summaryResponse = new Gson().fromJson([Your Json], SummaryResponse.class); 
1

這是一種快速簡單的方法來解析一個對象數組,也是一個單獨的對象,當我解析json時,它適用於我。

我相信只有當json對象格式良好時,它纔會起作用。我沒有嘗試過一個格式不正確的json對象,但那是因爲它請求的api是由我自己構建的,所以我不必擔心這個問題

 Gson gson = new Gson(); 
    SummaryResponse[] data = gson.fromJson(jsonObj, SummaryResponse[].class); 
相關問題