2011-08-30 528 views
2

我在将JSON中的int置于问题上存在问题。我有一个整数,我需要保存哪个服务器返回我的错误代码。问题是我必须在JSONObject中解析它,但JSONObject只接受字符串,而不是整数。这里是我想要做的一个例子:Android如何获取JSONObject中的int类型

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

任何建议如何解决这个问题?

+0

你试图把一个'int' _into_ JSON,或解析'int' _from_ JSON? –

+1

我需要在JSONObject中放置一个int。 –

+0

你能澄清你的问题吗?你提到解析,但在你的代码示例中,你正在创建一个新的JSONObject。 – dmon

回答

9

你可以这样做;当你尝试创建自己的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 
1

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

3

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

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();