私はこれを解析しようとしています:は、ドルをbolivarの非公式為替レートで表示するAndroidアプリ用です。配列を持たないJSONファイルの解析
私はこのチュートリアルを使用しています:http://www.androidhive.info/2012/01/android-json-parsing-tutorial/これまで使用していたAPIは、私が使用していたJSON配列と子オブジェクトで構成されていました。しかし、これには文字列を持つ12個のJSONオブジェクトがあります。見られる角括弧はありません。
部分(と思う)であると私はトラブルを抱えている:私は自分でプログラミングを学ぶためにしようとしていると、私はまだ非常に新しいですので、
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
JSONArray contacts = jsonObj.getJSONArray("contacts");
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String id = c.getString("id");
String name = c.getString("name");
String email = c.getString("email");
String address = c.getString("address");
String gender = c.getString("gender");
// Phone node is JSON Object
JSONObject phone = c.getJSONObject("phone");
String mobile = phone.getString("mobile");
String home = phone.getString("home");
String office = phone.getString("office");
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
}
}
私は、何の専門家です。しかし、私はListViewを取り除き、コードを新しいJSONに適合させるなどいくつかの変更を加えました。
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Object node
JSONObject c = jsonObj.getJSONObject("USD");
JSONObject d = jsonObj.getJSONObject("EUR");
String usdtrans = c.getString("dolartoday");
String usdreal = c.getString("efectivo_real");
String usddicom = c.getString("sicad2");
String eurtrans = d.getString("dolartoday");
String eurreal = d.getString("efectivo_real");
String eurdicom = d.getString("sicad2");
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
}
}
コードがコンパイルされない、とAndroid Studioは"unhandled exception: org.json.JSONException"
を検出します。これを変更するにはどうすればよいですか?
ご協力いただければ幸いです。私のコードの残りの部分にも他の問題がありますが、私はこの問題を解決することができれば、それらを並べ替えることができます。
Gson /ジャクソンのような他のライブラリを使用する必要があります。 –
json: '' dolartoday ":1026.13'、 コード:' String usdtrans = c.getString( "dolartoday"); ' そのjsonの値はStringではありません。それは倍です。 getStringを指定すると、エラーになります。 –
いいえ、それはできません。ダブル値は文字列に変換され、返されます –