2016-04-14 9 views
0

GSONとJsonScheme2Pojoを使用してjsonオブジェクトをマップしようとしました。同じキーで複数のjsonオブジェクトにjsonマッピングを行う方法

これまではこのクラスを作成しました。

public class MPayTransaction { 

@SerializedName("mp_request_type") 
@Expose 
private String mpRequestType; 
@SerializedName("status_code") 
@Expose 
private String statusCode; 
@SerializedName("amount") 
@Expose 
private String amount; 
@SerializedName("chksum") 
@Expose 
private String chksum; 
@SerializedName("pInstruction") 

/** 
* 
* @return 
*  The mpRequestType 
*/ 
public String getMpRequestType() { 
    return mpRequestType; 
} 

/** 
* 
* @param mpRequestType 
*  The mp_request_type 
*/ 
public void setMpRequestType(String mpRequestType) { 
    this.mpRequestType = mpRequestType; 
} 

/** 
* 
* @return 
*  The statusCode 
*/ 
public String getStatusCode() { 
    return statusCode; 
} 

/** 
* 
* @param statusCode 
*  The status_code 
*/ 
public void setStatusCode(String statusCode) { 
    this.statusCode = statusCode; 
} 

/** 
* 
* @return 
*  The amount 
*/ 
public String getAmount() { 
    return amount; 
} 

/** 
* 
* @param amount 
*  The amount 
*/ 
public void setAmount(String amount) { 
    this.amount = amount; 
} 

/** 
* 
* @return 
*  The chksum 
*/ 
public String getChksum() { 
    return chksum; 
} 

/** 
* 
* @param chksum 
*  The chksum 
*/ 
public void setChksum(String chksum) { 
    this.chksum = chksum; 
} 

/** 
* 
* @return 
*  The pInstruction 
*/ 
public int getPInstruction() { 
    return pInstruction; 
} 

/** 
* 
* @param pInstruction 
*  The pInstruction 
*/ 
public void setPInstruction(int pInstruction) { 
    this.pInstruction = pInstruction; 
} 

} 

、その後、私はこの方法でクラスと呼ばれる:

Gson gson = new Gson(); 
MPayTransaction mPayTransaction = gson.fromJson(jsonString, MPayTransaction.class); 

これが働いていると私は唯一量の値を取得する例MPayTransaction.getAmount()ために呼び出す必要があります。

私は複数のjsonオブジェクトをどのようにマップするのですか?これについて

{ 
"mp_request_type": "donePayment", 
"status_code": "00", 
"amount": "1.10", 
"chksum": "23259ef7e03266ada789bf5a30465469", 
"pInstruction": 0 
} 

、その後どのように::前のJSON文字列は次のようであるとしましょう

{ 
"mp_request_type": "donePayment", 
"status_code": "00", 
"amount": "1.10", 
"chksum": "23259ef7e03266ad23430465469", 
"pInstruction": 0 
}, 
{ 
"mp_request_type": "donePayment", 
"status_code": "100", 
"amount": "13.10", 
"chksum": "23259ef7e03g2r32fa30465469", 
"pInstruction": 0 
} 

は、どのように私はMPayTransaction.getAmount()から13.10である第二量の値を得るのですか?

答えて

2

使用ArrayListの<>、例えば

jsonString:

[{ 
"mp_request_type": "donePayment", 
"status_code": "00", 
"amount": "1.10", 
"chksum": "23259ef7e03266ad23430465469", 
"pInstruction": 0 
}, 
{ 
"mp_request_type": "donePayment", 
"status_code": "100", 
"amount": "13.10", 
"chksum": "23259ef7e03g2r32fa30465469", 
"pInstruction": 0 
}] 

は、ArrayListにこの文字列を解析<>:

arrayList.get(1).getAmount() 

Gson gson = new Gson(); 
Type collectionType = new TypeToken<Collection<MPayTransaction>>(){}.getType(); 
Collection<MPayTransaction> collObj = gson.fromJson(jsonString, collectionType); 
ArrayList<MPayTransaction> arrayList = new ArrayList<MPayTransaction>(collObj); 

はその後、第二量の値を取得

+0

私のために働いた。私はjson "java.lang.reflect.Type"と "com.google.gson.reflect.TypeToken"を使いました。 – JeromeC