【问题标题】:Getting JSON Exception no value for?获取 JSON 异常没有价值?
【发布时间】:2015-05-08 15:45:33
【问题描述】:

我正在尝试处理 json 响应,就像

{"Status":true,"UserId":111,"FirstName":"dev","LastName":"dev","Gender":-1,"BirthdayDate":"0000-00-00","Phone":"","ProfilePicture":"","ProfilePicture60px":"","ProfilePicture120px":"","CountryId":-1,"Email":"droidwithmxxmail.com","Password":"******123","RegisterDate":"2015-05-08 20:08:07","SessionId":"fce248fe6499b7a9338a1b64554509eb77841"}

但得到org.json.JSONException: no value for exception

我的代码是这样的。

if (jsonStr != null) {
            try {
                JSONObject jsonObj = new JSONObject(jsonStr);

            allres =jsonObj.getJSONArray(jsonStr);

                for (int i = 0; i < allres.length(); i++) {
                    JSONObject c = allres.getJSONObject(i);
                   userId = c.getString("UserId");
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

【问题讨论】:

  • 你确定这就是解析的全部代码吗?
  • 当然不是。我只是发布了响应代码
  • 根据您的代码,您首先要查找一个数组,然后是单个对象,但是您的示例 json 中没有数组?
  • 回复就像我首先发布的一样。但不知道如何处理。
  • 尝试删除jsonarray代码并像jsonobject一样使用它,或者只是删除JSONObject jsonObj = new JSONObject(jsonStr);和用户 allres = new JSONArray(jsonStr)

标签: json android-json


【解决方案1】:

试试这个代码:

if (jsonStr != null) {
  try {

    JSONObject jsonObj = new JSONObject(jsonStr);
   userId = jsonObj.getString("UserId");

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

您的 JSON 字符串中没有数组,因此您将从第一个 JSONObject 获取的对象已经是您的信息所在的位置。

【讨论】:

  • 没有什么可以循环的,你可以通过调用jsonObj.getXX()来获取每个属性。如果主对象包含在数组中,那么您可以遍历数组以获取每个对象的 UserId,但在这种情况下不是
  • 在以给定方式将图像上传到服务器时需要您的帮助。请
  • 您需要就 SO 提出问题并在那里描述您的问题。
  • 我会发布这个问题,但即使我也无法弄清楚这个问题听起来是什么。就像我很难理解一样,我会将信息发送给您,而不是您给我的问题,然后我将发布问题,请回答我。它真的非常紧急。请给我你的邮件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多