私は自分のアプリでjsonを解析しようとしています:
そこで、最初にAndroidアプリ用の定数クラスを作成しました。これにはapp.config用に約6つの変数があります。
(クラス:1)
public class Constants{
// url to make request
public static String url = "http://server.com/";
// JSON Node names
public static final String TAG_CONTACTS = "contacts";
public static final String TAG_ID = "id";
public static final String TAG_NAME = "name";
public static final String TAG_EMAIL = "email";
public static final String TAG_ADDRESS = "address";
public static final String TAG_GENDER = "gender";
}
これを別のクラスで使用したいので、先に進んで別のクラスを作成しました。
(クラス:2)
public class ReadFiles{
public void readConstant(){
//appConfig is JSONArray
JSONArray appConfig = null;
// Creating JSON Parser instance
JSONParser jParser = new JSONParser();
// getting JSON string from URL
JSONObject json = jParser.getJSONFromUrl(c.url);
try {
// Getting Array of Contacts
contacts = json.getJSONArray(Constants.TAG_CONTACTS);
// looping through All Contacts
for(int i = 0; i < contacts.length(); i++){
JSONObject d = details.getJSONObject(i);
// Storing each json item in variable
String id = d.getString(Constants.TAG_ID); //Error:
//ERROR : The method getString(int) in the type JSONArray is not applicable for the arguments-(String)
String name = d.getString(Constants.TAG_NAME);
String email = d.getString(Constants.TAG_EMAIL);
String address = d.getString(Constants.TAG_ADDRESS);
String gender = d.getString(Constants.TAG_GENDER);
} catch (JSONException e) {
e.printStackTrace();
}
}
ブロックでエラーが発生します:String name = c.getString(Constants.TAG_NAME);
jsonを解析してローカル変数に定数値を適用しようとしています。
私は日食のヒントに従い、またやろうとしました
String name = c.(Constants.TAG_NAME);
しかし、それでも運はありません。このブロックの何が問題になっていますか?json値をローカル変数に割り当てるにはどうすればよいですか?あなたの知識のために:これは私が達成しようとしていることです:android-json-parsing-tutorial しかし、私は別のクラスで定数を維持したいと思います。
更新:あなたが提案した変更を加えたところ、新しいエラーが発生しました:
String tabTitle = appConfig.(ConfigConstants.TITLE); //Error: Syntax error on token ".", Identifier expected after this token