-2

そのため、JSON オブジェクトから一連の文字列値を取得し、それらをすべて出力しています。ただし、すべての値を文字列配列に入れて空かどうかを確認し、空である場合は...値を「N / A」に変更して、空にならないようにしたかったのです。ただし、空白の文字列は認識されますが、logcat でチェックすると、空の文字列の名前が出力されません。たとえば、2 つの文字列が空になることはわかっていますが、これを確認すると、次のようになります。

System.out.println(nullCheck[i] + "is empty");

「空です」がlogcatに2回表示されるだけです。そして、それらのいずれかの値を変更したい場合でも、それはできません。データを含むすべての文字列を取得し、問題なく出力します。信じられないほど簡単なことを見落としているだけかもしれませんが、助けていただければ幸いです。参照用の完全なスニペットは次のとおりです。

    String supplieraddress = "";
    String supplierphone = "";
    String supplieremail = "";
    String supplierfax = "";
    String vouchercontact = "";
    String supplierid = "";
    String suppliername = "";
    String servicetype = "";
    String serviceid = "";
    String vouchernotes = "";

    try {
        voucher = reservation.getJSONArray("vouchers").getJSONObject(vouchNumber);

        supplieraddress = voucher.getString("supplieraddress");
        supplierphone = voucher.getString("supplierphone");
        supplieremail = voucher.getString("supplieremail");
        supplierfax = voucher.getString("supplierfax");
        vouchercontact = voucher.getString("vouchercontact");
        supplierid = voucher.getString("supplierid");
        suppliername = voucher.getString("suppliername");
        servicetype = voucher.getString("servicetype");
        serviceid = voucher.getString("serviceid");
        vouchernotes = voucher.getString("vouchernotes");

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    String[] nullCheck = {supplieraddress, supplierphone, supplieremail, supplierfax, vouchercontact,
            supplierid, suppliername, servicetype, serviceid, vouchernotes}; 

    for(int i = 0; i < nullCheck.length; i++)
    {
        if(nullCheck[i].equals(""))
        {
            System.out.println(nullCheck[i] + "is empty");
            nullCheck[i] = "N/A";
        }

    }

    content.setText(Html.fromHtml(
            "</br><b>Supplier Address </b><br/>" + supplieraddress
            + "<br/><br/><b>Supplier Phone </b><br/>" + supplierphone
            + "<br/><br/><b>Supplier Email </b><br/>" + supplieremail
            + "<br/><br/><b>Supplier Fax </b><br/>" + supplierfax
            + "<br/><br/><b>Voucher Contact </b><br/>" + vouchercontact
            + "<br/><br/><b>Supplier ID </b><br/>" + supplierid
            + "<br/><br/><b>Supplier Name </b><br/>" + suppliername
            + "<br/><br/><b>Service Type </b><br/>" + servicetype
            + "<br/><br/><b>Service ID </b><br/>" + serviceid
            + "<br/><br/><b>Voucher Notes </b><br/>" + vouchernotes
            ));  

}

みんなありがとう!

4

1 に答える 1

1

次のようにtryブロックで実行します。

String s = voucher.getString("supplieraddress");
supplieraddress = TextUtils.isEmpty(s)? "N/A" : s;
s = voucher.getString("supplierphone");
supplierphone = TextUtils.isEmpty(s)? "N/A" : s;
s = voucher.getString("supplieremail");
supplieremail = TextUtils.isEmpty(s)? "N/A" : s;

// and so on....
于 2012-04-06T19:42:23.017 に答える