修改org.json.JSONObject的stringToValue,返回能容纳整数的最小包装类型而不是Integer。

(修正数据交互工具中当对象包含属性的类型为类型为byte/short时反射调用field.set(bean,obj)引发异常。)

黑色粗体斜体为增加部分,修改后代码如下:

static public Object stringToValue(String s) {

if (s.equals("")) {

return s;

}

if (s.equalsIgnoreCase("true")) {

return Boolean.TRUE;

}

if (s.equalsIgnoreCase("false")) {

return Boolean.FALSE;

}

if (s.equalsIgnoreCase("null")) {

return JSONObject.NULL;

}

/*

* If it might be a number,try converting it.

* We support the non-standard 0x- convention.

* If a number cannot be produced,then the value will just

* be a string. Note that the 0x-,plus,and implied string

* conventions are non-standard. A JSON parser may accept

* non-JSON forms as long as it accepts all correct JSON forms.

*/

char b = s.charAt(0);

if ((b >= '0' && b <= '9') || b == '.' || b == '-' || b == '+') {

if (b == '0' && s.length() > 2 &&

(s.charAt(1) == 'x' || s.charAt(1) == 'X')) {

try {

return new Integer(Integer.parseInt(s.substring(2),16));

} catch (Exception ignore) {

}

}

try {

if (s.indexOf('.') > -1 ||

s.indexOf('e') > -1 || s.indexOf('E') > -1) {

return Double.valueOf(s);

} else {

Long myLong = new Long(s);

if (myLong.shortValue() == myLong.byteValue()) {

return new Byte(myLong.byteValue());

} if (myLong.intValue() == myLong.shortValue()) {

return new Short(myLong.shortValue());

} if (myLong.longValue() == myLong.intValue()) {

return new Integer(myLong.intValue());

} else {

return myLong;

}

}

} catch (Exception ignore) {

}

}

return s;

}

还有org.json.JSONObject中增加:

/** * Put a key/int pair in the JSONObject. * * @param key A key string. * @param value An int which is the value. * @return this. * @throws JSONException If the key is null. */ public JSONObject put(String key,byte value) throws JSONException { put(key,new Byte(value)); return this; } /** * Put a key/int pair in the JSONObject. * * @param key A key string. * @param value An int which is the value. * @return this. * @throws JSONException If the key is null. */ public JSONObject put(String key,short value) throws JSONException { put(key,new Short(value)); return this; }

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

jsonobject修改key的值_JSONObject(org.json)的一点修改相关推荐

  1. jsonobject修改key的值_修改JSONArray里所有key的值

    下面举一个代码的列子目的是实现如下功能: [{"userId":1,"userName":"plf"},{"userId" ...

  2. jsonobject修改key的值_JSON字符串操作移除空串更改key/value的介绍

    对于JSON字符串的操作.移除键值.添加属性. //删除JSON对象value值 var json=[.....]; delete(json['key']); 或者 delete(json.key); ...

  3. jsonobject修改key的值_Go 语言 map 解析之 key 的定位核心流程

    1 哈希表 哈希表属于编程中比较常见的数据结构之一,基本上所有的语言都会实现数组和哈希表这两种结构,Hash table 的历史是比较悠远的,我们在编程时也是离不开的,这种数据结构的作用其实很简单,就 ...

  4. lisp修改天正标高值_天正CAD里面如何修改标高三角形尺寸,一直太大?

    回答: 1.首先,我们先单击"绘图"工具栏中的"直线"按钮,绘制出一个标高符号,就像一个横着放的旗帜.标高符号绘制完成,我们就要进行下一个步骤了. 2.选择菜单 ...

  5. layUI数据表格可编辑表格单元格值修改之后获取修改前的值

    table.on('edit(data_table)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值&q ...

  6. 读json文件并修改数据

    读json文件并修改数据 <html><head><title>读json文件并修改数据</title><meta charset='utf-8' ...

  7. org.codehaus.jettison.json.JSONObject类型的Null值怎么判断的问题,JSONObject$Null

    org.codehaus.jettison.json.JSONObject类型的Null值怎么判断的问题,JSONObject$Null 说明 原报文 {"M_SECURITY_LEVEL& ...

  8. SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值?

    SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值? 记得在D项目上线之前数据导入系统之后,业务提出一些物料采购视图里的'Purchasing value k ...

  9. hashmap修改对应key的值_死磕 java集合之HashMap源码分析

    简介 HashMap采用key/value存储结构,每个key对应唯一的value,查询和修改的速度都很快,能达到O(1)的平均时间复杂度.它是非线程安全的,且不保证元素存储的顺序: 继承体系 Has ...

最新文章

  1. 叶际微生物定殖模型研究进展
  2. sklearn 笔记:make_blobs 生成聚类数据
  3. 用MDT 2012为企业部署windows 7(十一)--抓取标准模板机镜像
  4. Linux CentOS 7【修改 屏幕(分辨率)大小】
  5. combobox 怎么实现对listview的类别查询_Flutter实战之独立实现官网Demo单词收藏Demo
  6. table偏见和HTML仇外心理
  7. 同宿舍的程序员毕业五年之女生篇:有人怀疑人生,有人考虑出家
  8. 服务器搭建对讲机系统,传统对讲机系统如何接入到融合通信系统?
  9. 《大道至简》阅读笔记02
  10. 通达信波段王指标公式主图_通达信波段王主图指标公式
  11. Rancher快速入门
  12. 如何采集企业信息公示系统
  13. centos进入管理员_centOS 如何让当前用户取得管理员权限
  14. CSS样式--前端布局(五)
  15. Golang 基础:接口使用、实现原理(eface iface)和设计模式
  16. 167. 两数之和 II - 输入有序数组(java)
  17. conversational recommender system论文笔记;推荐系统(recommender system)+对话系统(dialogue system)
  18. 基于Bootstrap4写的一个JQuery分页插件
  19. 华为云OBS文件上传下载工具类
  20. [Practical.Vim(2012.9)].Drew.Neil.Tip94 学习摘要

热门文章

  1. Xqk.Data数据框架开发指南:丰富的、灵活的查询方法(第一部分)
  2. 一个类中有一个参数,需要在另一个类中用到
  3. 支持向量机(SVM)-文本分类 (1)
  4. laravel5.6 邮件队列database驱动简单demo
  5. python---01.名片管理系统
  6. SharePoint 删除废弃站点步骤
  7. Java dom4j解析RESTFull风格发布的WebService的xml文件
  8. OpenCV初探 —— VS2019配置环境
  9. cocos2d-x调度器原理,mainloop的Update
  10. AndroidStudio_安卓原生开发_v4v7升级到androidx方法---Android原生开发工作笔记147