0

抱歉重复出现的问题,但我没有在谷歌上找到答案。我正在尝试将 json 解析为 setter/getter 类的对象。

public ArrayList<User> getArrayList(StringBuffer jsonReceived){
    ArrayList<User> userArrayList = new ArrayList<User>();
    JSONObject json = new JSONObject(jsonReceived.toString());
    JSONArray userTable = json.getJSONArray("user");
    for (int i = 0; i < userTable.length(); i++) {
        User user = new User();
        user.setId(userTable.getJSONObject(i).getInt("user_id"));
        user.setLastName(userTable.getJSONObject(i).getString("user_last_name"));
        user.setFirstName(userTable.getJSONObject(i).getString("user_first_name"));
        user.setEmail(userTable.getJSONObject(i).getString("user_email"));
        System.out.println(userTable.getJSONObject(i).getString("user_birthday"));
        String dateStr = userTable.getJSONObject(i).getString("user_birthday");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date birthDate = sdf.parse(dateStr);
            user.setBirthday(birthDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        user.setCountry(userTable.getJSONObject(i).getString("user_country"));
        user.setCity(userTable.getJSONObject(i).getString("user_city"));
        userArrayList.add(user);
    }
    System.out.println("la list d'utilisateurs : "+userTable.toString());
    System.out.println("ArrayList : "+userArrayList.toString());
    return userArrayList;
}

这里 mon json 字符串用户:

{
"tag": "getUsers",
"success": 1,
"error": 0,
"user": [
    {
        "user_id": "1",
        "user_last_name": "Alain",
        "user_first_name": "Ron",
        "user_birthday": "2014-02-01",
        "user_email": "alain@ron.fr",
        "user_country": "",
        "user_city": ""
    },
    {
        "user_id": "2",
        "user_last_name": "Rodrigues",
        "user_first_name": "Richard",
        "user_birthday": null,
        "user_email": "richard@r.fr",
        "user_country": null,
        "user_city": null
    }
]}

我的错误日志是:

线程“AWT-EventQueue-0”org.json.JSONException 中的异常:JSONObject["user_birthday"] 不是字符串。在 org.json.JSONObject.getString(JSONObject.java:661) 在 fr.moveo.applicationlourde.services.AbstractMethods.getArrayList(AbstractMethods.java:50) 在 fr.moveo.applicationlourde.Views.frames.WindowConnexion.actionPerformed(WindowConnexion .java:75) 在 javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 在 javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) 在 javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java: 402) 在 javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

我已经尝试了我在谷歌的第一页和第二页找到的所有方法,但它没有奏效......

4

0 回答 0