java - 未处理的异常类型 JSONException

标签 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");

它们都是用键值对创建对象的等价方式吗?创建需要发送到服务的对象时,这是首选方式。

最佳答案

Unhandled exception type JSONException

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

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

Are they both equivalent way of creating an object with key, value pair. Which is the preferred way when creating an object which needs to send to a service.

JSONObject.put() 会抛出 JSONException 而 Map.put() 不会。

两者都作为键值对工作,但它们是不同的。

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

使用 Map 作为数据结构是不可能的(直接转换为字符串)或者换句话说,您必须通过 Map 中的 KeySet() 和每个键如果您想实现与 JSON 几乎相同的效果,则将键及其值存储到字符串(例如使用 StringBuilder)。

所以如果要通过网络在“不同机器”之间传递数据,直接指定JSON就可以了。

关于java - 未处理的异常类型 JSONException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15702315/

相关文章:

java - 在 StreamObserver.onNext() 内部阻塞

java - GL绘图纹理绑定(bind)错误

java - Java中使用try-catch处理输入异常

android - 使用 WindowInsets 在 Android 上正确进行边到边处理

java - 学习android-创建一个类并稍作修改以重用代码-sdk

android - 执行 doInBackground() 时发生致命异常 Asynctask #1 java.lang.RuntimeException 错误

Java 与 MySql 数据库的连接问题

java - 你能帮我实现 Clarke 和 Wright 算法吗?

java - 使用 TextWatcher 过滤 ListView 会出现 IndexOutOfBoundsException

android - 为所有开发人员提供一个 Google map key ?