2016-07-07 815 views
-3
String value = myInput.getText().toString(); 

我希望把字符串值到JSONObject.put("STRING",value)方法,但它不工作..JSONObject.put(字符串,字符串)不工作

见附件截屏,并告诉如何解决这个问题。

enter image description here

+0

使用try catch为那 –

+0

你忘了附加截图。 –

+0

我的问题是不是关于什么错误即将到来。 –

回答

2

添加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(); 
      } 
+0

请告诉我为什么try catch是强制性的。 –

+2

因为可能是exception来的,所以catch块句柄 –

2

把你的代码中try.. catch块,因为可能是异常发生

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

你应该换行内的try-catch代码

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

为什么try-catch是compulsary?

有2种异常:经过未选中

  1. 经过检查的异常可以认为是由编译器发现一个,并且编译器知道它有发生的机会,所以你需要捕捉或者扔掉它。

  2. 未经检查的异常是一个运行时异常,这意味着这些是内部的应用程序异常情况,以及该应用程序通常不能预期或从恢复。

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

如果解析失败或不产生JSONObject,新的JSONObject(数据)将抛出JSONException。因此,建议在编译时将其封装在try-catch块中&底层IDE将显示相同的错误消息。