抱歉重复出现的问题,但我没有在谷歌上找到答案。我正在尝试将 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)
我已经尝试了我在谷歌的第一页和第二页找到的所有方法,但它没有奏效......