0

我正在尝试在我的应用程序中解析 json:

所以首先我为我的android应用程序创建了常量类,它有大约6个app.config变量:

(等级: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,它们只需要以某种static方式(即)通过使用ClassName常量)来访问。

更新:-

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 回答