一 JSONArray和JSONOject的用法

JSONArray用法

1  解析字符串JSONArray jsonarr = JSONArray.parseArray(str);2  存值取值(1) 存值jsonarr.add(obj);(2) 取值for(int i =0; i <= jsonarr.size(); i++){jsonarr[i].get(key);} 3   格式: 本质是数组, 必须是数组格式,   用  [ ] 包裹数据 格式:   [{key:value},{key:value}... ]["str1","str2","str3",...]

JSONObject的用法

1 解析字符串JSONObject  obj = JSONArray.parseObject(str);2  存值取值(1) 存值obj.put("key", key);obj.put("value", value);(2) 取值value = obj.get(key);3  格式:本质是对象, 用 {} 表示格式:  {key:value}

案例

public class JsonTest {public static void main(String[] args) {String s1 = "[]";String s2 = "[{}]";String s3 = "";String s4 = null;String s5 = "[{\"functionId\":\"14\",\"needBuy\":false,\"functionName\":\"功能1\"},{\"functionId\":\"17\",\"needBuy\":false,\"functionName\":\"功能2\"}]";String s6 = "{}";JSONArray jsonarr1 = JSONArray.parseArray(s1);JSONArray jsonarr2 = JSONArray.parseArray(s2);JSONArray jsonarr3 = JSONArray.parseArray(s3);JSONArray jsonarr4 = JSONArray.parseArray(s4);JSONArray jsonarr5 = JSONArray.parseArray(s5);//JSONArray jsonarr6 = JSONArray.parseArray(s6);Object obj1 = JSONObject.parse(s1);Object obj2 = JSONObject.parse(s2);Object obj3 = JSONObject.parse(s3);Object obj4 = JSONObject.parse(s4);Object obj5 = JSONObject.parse(s5);Object obj6 = JSONObject.parse(s6);System.out.println("s1 = " + jsonarr1);System.out.println("s2 = " + jsonarr2);System.out.println("s3 = " + jsonarr3);System.out.println("s4 = " + jsonarr4);System.out.println("s5 = " + jsonarr5);//System.out.println("s6 = " + jsonarr6);System.out.println("");System.out.println("obj1 = " + obj1);System.out.println("obj2 = " + obj2);System.out.println("obj3 = " + obj3);System.out.println("obj4 = " + obj4);System.out.println("obj5 = " + obj5);System.out.println("obj6 = " + obj6);答案:  打印第6条因格式不对, 会报错, 所以注释了s1 = []s2 = [{}]s3 = nulls4 = nulls5 = [{"functionId":"14","needBuy":false,"functionName":"功能1"},{"functionId":"17","needBuy":false,"functionName":"功能2"}]//Exception in thread "main" com.alibaba.fastjson.JSONExceptobj1 = []obj2 = [{}]obj3 = nullobj4 = nullobj5 = [{"functionId":"14","needBuy":false,"functionName":"功能1"},{"functionId":"17","needBuy":false,"functionName":"功能2"}]obj6 = {}

总结

 只要格式正确, 空字符串和null都是可以解析的

JsonArray用法(二)相关推荐

  1. 最重要的事情 一 、消息通信机制(1)ant 打包方法(2) system.out.println()用法 二、UML学习

    最重要的事情    一 .消息通信机制(1)ant 打包方法(2) system.out.println()用法      二.UML学习

  2. 【Linux命令】ip addr、ip link、ifconfig 用法 二

    文章目录 1. 前言 2. ip link 2.1 ip link add 2.1.1 命令实例 2.2 ip link set 2.3 ip link show 2.4 ip link delete ...

  3. Linux九阴真经之九阴白骨爪残卷5(ansible用法二之Playbook和YAML语法)

    playbook是由一个或多个"play"组成的列表 play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲,所谓task无 ...

  4. JSONArray用法(三)

    一 JSONArray 添加 JSONObject 1 语法: JSONArray.add(JSONObject); 2 格式: [{"key": "value" ...

  5. 详解MySQL字符串函数CONCAT()、CONCAT_WS()、INSERT()、REPLACE()、LOWER()、UPPER()用法(二)

    文章目录 一.合并字符串函数CONCAT()和CONCAT_WS() 1.CONCAT() 2.CONCAT_WS() 二.替换字符串INSERT()和REPLACE 1.INSERT() 2.REP ...

  6. boost::function的用法(二)

    boost function是一组类和模板组合,用于包装各种函数.从功能上,它类似于函数指针,但是比函数指针的功能更强大. 使用boost function,必须包含头文件 [cpp] view pl ...

  7. requirejs的用法(二)

    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的 ...

  8. Android ListView常用用法(二)

    来自:51CTO论坛 原帖:http://mobile.51cto.com/android-254823.htm Android开发:实现带图片和checkbox的listview 项目要用到一个li ...

  9. C语言之volatile用法(二十一)

    一.volatile 介绍 参看:volatile详解 参看:C Language Keywords Indicates that a variable can be changed by a bac ...

最新文章

  1. 【面向工业界】推荐算法工程师培养计划
  2. mysql 存储过程 输出warning_如何抑制MySQL存储过程的输出?
  3. ethtool修改网卡队列
  4. gradle风格的groovy代码
  5. pod实例数是什么意思_[灌水] Kubernetes In Action: Pod
  6. 函数的返回值-交换两个变量的值
  7. Linux系统编程(三)进程间的通信
  8. PHP7 ini 配置大全
  9. RDLC使用手册_RDLC报表部署
  10. coreldraw linux版本好用,CorelDRAW哪个版本最好用
  11. pg数据库中两个字段相除
  12. 计算机xp画板在哪找,xp系统画图工具在哪里|xp画图工具有什么功能
  13. 小米笔试题 风口的猪-中国牛市
  14. jquery 遍历父元素、子元素、兄弟元素
  15. 使用nexus搭建maven私服(一)安装启动
  16. 使用transformers从头训练Bert
  17. TreeView和数据库
  18. 巨富笔记:上者劳人,中者劳智,下者劳力
  19. R语言之主成分回归与偏最小二乘xt8.3xt8.4
  20. crm如何做好客户关系管理?

热门文章

  1. CentOS添加和删除用户
  2. Markdown pad2 保存为pdf的两种方法
  3. ibm服务器维修 代码ed,IBM服务器安装全过程
  4. “一桶半“如何撑起今麦郎上市的“明天“?
  5. TI Sitara系列AM64x开发板(双核ARM Cortex-A53)软硬件资料规格书
  6. 那些说「程序员」的穿搭丑爆的?看完这篇我们再聊!
  7. RJ45连机器硬件测试解决方案
  8. DoS本地拒绝服务攻击
  9. 在训练过程中加入Dropout
  10. 小学六年级 计算机演讲稿,小学六年级演讲稿大全