在与服务端通过JSON格式进行交互过程中,不同版本的JSON库在对于key-value为null情况上的处理不同。

Android自带的org.json对key-value都要求不能为null,对于必传的字段需要留意一下,尤其是留意value是否可能出现null的情形。否则导致服务端解析出现问题。

此坑已被踩中,留下小记。下面直接看一下相应位置源码:

 1 public class JSONObject { 2  3     ...... 4  5     /** 6      * Maps {@code name} to {@code value}, clobbering any existing name/value 7      * mapping with the same name. If the value is {@code null}, any existing 8      * mapping for {@code name} is removed. 9      *10      * @param value a {@link JSONObject}, {@link JSONArray}, String, Boolean,11      *     Integer, Long, Double, {@link #NULL}, or {@code null}. May not be12      *     {@link Double#isNaN() NaNs} or {@link Double#isInfinite()13      *     infinities}.14      * @return this object.15      */16     public JSONObject put(String name, Object value) throws JSONException {17         if (value == null) {18             nameValuePairs.remove(name);19             return this;20         }21         if (value instanceof Number) {22             // deviate from the original by checking all Numbers, not just floats & doubles23             JSON.checkDouble(((Number) value).doubleValue());24         }25         nameValuePairs.put(checkName(name), value);26         return this;27     }28     29     30     String checkName(String name) throws JSONException {31         if (name == null) {32             throw new JSONException("Names must be non-null");33         }34         return name;35     }36     37     38     ......39     40 }

更多相关文章

  1. SDL Android(安卓)编译小记
  2. Android蓝牙BLE基本用法
  3. Android(安卓)IPC机制之 Android的各种IPC方式
  4. Android(安卓)AIDL实例解析
  5. 开发Android网站客户端
  6. 71、Android上对Cookie的读写操作
  7. Android远程接口之AIDL——Parcelable、in、out、inout简例
  8. [移动] Android推送方案分析(MQTT/XMPP/GCM)
  9. Android(安卓)使用【AIDL】调用外部服务

随机推荐

  1. 内存操作函数:memove、memcpy、strstr、st
  2. 第14章 0301-实战会话控制技术,(项目实战:
  3. 演示flex container 容器中的4个属性
  4. Android按钮的点击效果的总结
  5. Android中的UID和PID意义,及查看方式
  6. Android前景怎么样、是不是要凉了、是不
  7. Android(安卓)Wear:创建可穿戴应用 - 概述
  8. Android(安卓)之 Window、WindowManager
  9. 谷安: 米国军方的 iOS、Android、Windows
  10. 使用ant让Android自动打包的build.xml,自