【问题标题】:Android how to get int type in JSONObjectAndroid如何在JSONObject中获取int类型
【发布时间】:2011-11-06 19:13:24
【问题描述】:

我在将 int 放入 JSON 时遇到问题。我有一个整数,我需要保存服务器返回给我的错误代码。问题是我必须在JSONObject 中解析它,但JSONObject 只接受字符串,而不接受整数。这是我正在尝试做的一个例子:

int errorCode;
JSONObject ErrorCode;
ErrorCode = new JSONObject(errorCode);

有什么建议可以解决这个问题吗?

【问题讨论】:

  • 您是想将int 放入 JSON,还是解析int 来自 JSON?
  • 我需要在 JSONObject 中放入一个 int。
  • 你能澄清你的问题吗?您提到了解析,但在您的代码示例中,您正在创建一个新的 JSONObject。
  • 实际上我不确定这是否是正确的方法......我的想法是我使用一个整数来保存服务器发送给我的错误代码,以便我可以做一些事情取决于在返回的代码上。

标签: java android json integer


【解决方案1】:

你可以这样做;当你尝试创建你的 json 对象时,使用这个:

//method 1
String myJson = " {errorCode:"+errorCode+"}";
ErrorCode = new JSONObject(myJson);

//method 2
ErrorCode = new JSONObject();
ErrorCode.put("errorCode", errorCode);// jsonObject.put(String key,Object value);

然后当你尝试解析它时,你可以使用:

json.getInt(String key); // in this case, the key is : errorCode

【讨论】:

    【解决方案2】:

    JSONObject 是相当于 json 文本响应的代码。这不是该响应的一个关键。您最可能想要做的是读取服务器响应中包含的单个密钥。为此,请使用JSONObject.getInt("key")

    示例:

    int errorCode;
    JSONObject json = new JSONObject(serverResponseString);
    errorCode = json.getInt("error_key");
    

    如果您想编写JSONObject 而不是解析一个,请使用JSONObject.put()

    int errorCode = 42;
    JSONObject json = new JSONObject();
    json.put("error_key", errorCode);
    String jsonString = json.toString();
    

    【讨论】:

      【解决方案3】:

      创建一个新的JSONObject,然后在该JSONObject 上调用put("fieldName", intValue)。见docs

      【讨论】:

        【解决方案4】:

        JSONObject 有一个公共的 JSONObject(java.lang.Object bean) 构造函数。尝试使用 code 字段创建 ErrorCode 对象并将其传递给 JSONObject 构造函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-30
          • 2015-02-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多