String value = myInput.getText().toString();
我想将字符串值放入JSONObject.put("STRING",value)
方法,但它不起作用..
请参阅随附的屏幕截图并说明如何解决此问题。
答案 0 :(得分:3)
添加try.. catch
String data = "";
String val = "hello";
try {
JSONObject j = new JSONObject(data);
j.put("VAL", val);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:3)
您应该将代码包装在 try-catch
中try {
JSONObject j = new JSONObject(data);
} catch (JSONException e) {
e.printStackTrace();
}
为什么try-catch是强制性的?
有两种例外:已检查和未选中。
检查异常可以被认为是编译器找到的异常,并且编译器知道它有可能发生,所以你需要捕获或抛出它。
未经检查的异常是一个运行时异常,这意味着这些是应用程序内部的异常条件,并且应用程序通常无法预期或从中恢复。
JSONException是一种Checked异常。检查的异常需要在编译时自行处理。
如果解析失败或者没有产生JSONObject,新的JSONObject(数据)将抛出JSONException。所以建议在编译时自己将它包装在try-catch块中。底层IDE将显示相同的错误消息。
答案 2 :(得分:2)
将您的代码放在try.. catch
块中,因为可能会发生异常
try{
JSONObject params = new JSONObject(data);
}
catch (JSONException e)
{
e.printStackTrace();
}