博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android填坑系列:Android JSONObject 中对key-value为null的特殊处理
阅读量:6497 次
发布时间:2019-06-24

本文共 1752 字,大约阅读时间需要 5 分钟。

在与服务端通过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 }
复制代码

 

---------------------------------------------------------------------------------
笔者水平有限,若有错漏,欢迎指正,如果转载以及CV操作,请务必注明出处,谢谢!
分类:
本文转自Windstep博客园博客,原文链接:http://www.cnblogs.com/lwbqqyumidi/p/5491074.html,如需转载请自行联系原作者
你可能感兴趣的文章
LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
查看>>
uva-12657 - Boxes in a Line(双向链表)
查看>>
python之commands模块
查看>>
android应用开发--------------看RadioGroup源代码,写相似单选选项卡的集成控件(如底部导航,tab等等)...
查看>>
LeetCode - Binary Tree Level Order Traversal
查看>>
FTP协议完全详解
查看>>
iOS:实现图片的无限轮播
查看>>
【C语言天天练(十五)】字符串输入函数fgets、gets和scanf
查看>>
【环境配置】配置sdk
查看>>
accept()
查看>>
USB 2.0 Hub IP Core
查看>>
USB 2.0 OTG IP Core
查看>>
解读浮动闭合最佳方案:clearfix
查看>>
Charles使用
查看>>
Python GUI编程(Tkinter) windows界面开发
查看>>
P(Y|X) 和 P(X,Y)
查看>>
dynamic关键字的使用
查看>>
iOS 音乐播放器之锁屏效果+歌词解析
查看>>
【转】Google 的眼光
查看>>
android O 蓝牙设备默认名称更改
查看>>