0

私は自分のアプリで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

4

2 に答える 2

5

単純にこれを使ってみませんか?

Constants.TAG_NAME

なぜConstantsクラスをインスタンス化するのですか?Constantsクラス内のすべてのフィールドは、 (定数)を使用する方法でのみ(つまり)staticアクセスする必要があるためです。staticClassName

アップデート:-

appConfig.(ConfigConstants.TITLE);

方法があるべきではありませんか?このようなもの。

appConfig.someMethodName(ConfigConstants.TITLE);
于 2013-03-25T06:26:09.640 に答える
0

パッケージでJSONArrayクラスを使用していると思います

org.json.JSONArray

方法があります

getString(int)

このメソッドが整数パラメーターを受け入れる場合、文字列引数を渡すと、Eclipseによってエラーがスローされることは明らかです。

于 2013-03-25T06:36:24.383 に答える