我在将int
放入JSON时遇到问题。我有一个整数,我需要保存服务器返回给我的错误代码。问题是我必须在JSONObject
中解析它,但JSONObject
只接受字符串,而不是整数。这是我正在尝试做的一个例子:
int errorCode;
JSONObject ErrorCode;
ErrorCode = new JSONObject(errorCode);
有关如何解决该问题的任何建议吗?
答案 0 :(得分:9)
//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
答案 1 :(得分:7)
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();
答案 2 :(得分:3)
创建新的JSONObject
,然后在JSONObject
来电put("fieldName", intValue)
。请参阅docs。
答案 3 :(得分:1)
JSONObject有一个公共JSONObject(java.lang.Object bean)构造函数。尝试使用代码字段创建ErrorCode对象并将其传递给JSONObject构造函数。