未处理的异常类型JSONException

时间:2013-03-29 11:29:20

标签: java android

JSONObject login = new JSONObject();
login.put("Key1", "Value1");

我只是想创建一个带键和值对的简单JSON对象。我得到了这个例外“Unhandled exception type JSONException”。

Map<String,String> map = new HashMap<String,String>
map.put("key1", "value1");

它们是否都是使用键值对创建对象的等效方式。在创建需要发送到服务的对象时,这是首选方法。

2 个答案:

答案 0 :(得分:18)

  

未处理的异常类型JSONException

您需要将代码包装到try-catch块中。这是你的警告。

JSONObject login = new JSONObject();
    try {
        login.put("Key1", "Value1");
    } 
    catch (JSONException e) {... }
  

它们是否都是创建具有键值的对象的等效方式   对。在创建需要的对象时,这是首选方法   发送到服务。

JSONObject.put()抛出JSONException并且Map.put()不抛出。

两者都是键值对,但它们不同。

JSON是通常用于数据交换的特定轻量级格式,如果您创建它,您可以轻松地通过网络传递其字符串表示。

使用Map作为数据结构,它是不可能的(直接转换为字符串),或者换句话说,您必须通过Map中的KeySet()以及每个密钥存储区的密钥来使用它如果你想要实现与JSON几乎相同的东西,那么将值转换为String(例如使用StringBuilder)。

因此,如果您想在&#34;不同的机器之间传递数据&#34;通过网络,直接指定JSON

答案 1 :(得分:1)

转到JSONObject:

  • 当您想要创建JSON或操纵它时
  • 如果您传递数据的服务接受JSONObject

    转到收藏

  • 如果特定数据结构适合您
  • 如果要传递数据的服务接受Collection对象