JSONObject.put(string,string)不起作用

时间:2016-07-07 11:29:00

标签: android json android-studio

String value = myInput.getText().toString();

我想将字符串值放入JSONObject.put("STRING",value)方法,但它不起作用..

请参阅随附的屏幕截图并说明如何解决此问题。

enter image description here

3 个答案:

答案 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是强制性的?

有两种例外:已检查未选中

  1. 检查异常可以被认为是编译器找到的异常,并且编译器知道它有可能发生,所以你需要捕获或抛出它。

  2. 未经检查的异常是一个运行时异常,这意味着这些是应用程序内部的异常条件,并且应用程序通常无法预期或从中恢复。

  3. JSONException是一种Checked异常。检查的异常需要在编译时自行处理。

    如果解析失败或者没有产生JSONObject,

    新的JSONObject(数据)将抛出JSONException。所以建议在编译时自己将它包装在try-catch块中。底层IDE将显示相同的错误消息。

答案 2 :(得分:2)

将您的代码放在try.. catch块中,因为可能会发生异常

 try{
         JSONObject params = new JSONObject(data);  
    }
 catch (JSONException e)
    {
        e.printStackTrace();
    }