0

GSON とJsonScheme2Pojoを使用して 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オブジェクトをどのようにマッピングすればよいのでしょうか? 前のjson文字列が次のようになっているとしましょう:

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

そして、これはどうですか:

{
"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
}

13.10からの2番目の金額の値を取得するにはどうすればよいMPayTransaction.getAmount()ですか?

4

1 に答える 1

2



jsonStringなどの ArrayList<> を使用します。

[{
"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<> に解析します。

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);

次に、2 番目の量の値を取得します。

arrayList.get(1).getAmount()
于 2016-04-14T03:03:13.903 に答える