Java Android-解析片段中的复杂json(listview)

Java Android-解析片段中的复杂json(listview),java,android,json,listview,android-fragments,Java,Android,Json,Listview,Android Fragments,如何在片段(listview)中解析复杂的json数据。我无法保存片段中的所有json数据 错误 Json数据 { "users": [{ "userId": 1, "name": "Dya Vega", "profilePhoto": "https://graph.facebook.com/1301454197/picture?type=large", "dateMatched": "1/1/2015",

如何在片段(listview)中解析复杂的json数据。我无法保存片段中的所有json数据

错误

Json数据

{
    "users": [{
        "userId": 1,
        "name": "Dya Vega",
        "profilePhoto": "https://graph.facebook.com/1301454197/picture?type=large",
        "dateMatched": "1/1/2015",
        "distance": "1 miles away",
        "status": "Online",
        "requestMessage": "Hi, can I know you?",
        "like": 234,
        "lastActive": "Active 1 hour ago"
    }, {
        "userId": 2,
        "name": "Esa Ezzatinor",
        "profilePhoto": "https://graph.facebook.com/1269334432/picture?type=large",
        "dateMatched": "1/1/2015",
        "distance": "2 miles away",
        "status": "Online",
        "requestMessage": "Hi, can I know you?",
        "like": 234,
        "lastActive": "Active 2 hour ago"
    }]
}
HistoryFragment.java

public class HistoryFragment extends Fragment {

...

// Creating volley request obj
        JsonArrayRequest userReq = new JsonArrayRequest(url,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Log.d(TAG, response.toString());
                        hidePDialog();

                        // Parsing json
                        for (int i = 0; i < response.length(); i++) {
                            try {

                                JSONObject obj = response.getJSONObject(i);
                                User user = new User();
                                User.setName(obj.getString("name")); // error here
                                User.setThumbnailUrl(obj.getString("profilePicture")); // error here
                                User.setLastLogin(obj.getString("lastLogin")); // and here

                                // adding user to users array
                                userList.add(user);

                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }

                        // notifying list adapter about data changes
                        // so that it renders the list view with updated data
                        adapter.notifyDataSetChanged();
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        VolleyLog.d(TAG, "Error: " + error.getMessage());
                        hidePDialog();

                    }
                });

...

}

您应该将
methods
设置为Userclass
Object
like

  User user = new User();
  user.setName(obj.getString("name")); 
  user.setThumbnailUrl(obj.getString("profilePicture")); 
  user.setLastLogin(obj.getString("lastLogin")); 

您只能通过创建该类的对象来访问所有用户类方法。

用户
类中一样,所有方法都是
非静态的
,但尝试使用类名访问所有方法(仅使用类名访问静态方法)

创建类对象以访问所有方法

User user = new User();
现在使用
user
从用户类访问所有getter/setter方法


若要访问所有方法,而不使用当前使用的类名创建对象,则在用户类中使用所有方法添加static

只需在实例而不是类上调用setter,即在用户而不是用户上调用setter。。。这看起来像是一个输入错误:)添加到上面使用GSON,这将很容易完成您的任务。您可以在我的问题中检查我的模型:)对不起,我的错误。假设用户是用户。该死..我得到了这个:这行有多个标记-不能在静态上下文中使用-行断点:User[line:20]-setName(String)@Dato'MohammadNurdin:我希望您知道:
您只能访问静态方法中的静态变量或方法
有什么区别?您只能通过创建该类的
对象
来访问所有
用户
类方法。
User user = new User();