一、JSONObject和JSONArray的数据表示形式

JSONObject的数据是用 {  } 来表示的,

例如:   { "name" : "佩奇", "weight" : 50 }

而JSONArray,顾名思义是由JSONObject构成的数组,用  [ { } , { } , ......  , { },"字符串" ]  来表示

例如:   [ {  "name" : "佩奇", "weight" : 50 }  ,  {  "name" : "麦兜", "weight" : 50 ,"height" : 180} ,"小猪信息"] ;

表示了包含2个JSONObject的JSONArray。

可以看到一个很明显的区别,一个用的是 {  }  ,一个最外面用的是 [  ]  ;

二、JSONObject添加元素put(key,value)方法和调用元素方法get(key)

1.put(key,value)方法

put(key,value)其中key是键名,一般为字符串,用于调用后边的value,

value的值为String或JSONObject或JSONArray对象

2.get(key)

get(key),key为键名

getJSONObject(key),key为键名,返回JSONObject对象

getJSONArray(key),key为键名,返回JSONArray对象

实例如下

         JSONObject student = new JSONObject();
/*
* put(key,value)其中key是键名,一般为字符串,用于调用后边的value,
* value的值为String或JSONObject或JSONArray对象
*/
//put(key,value)添加String对象
student.put("name", "小明");
student.put("sno", "20160000"); JSONObject address = new JSONObject();
address.put("city", "石家庄市");
address.put("country", "长安区");
//put(key,value)添加JSONObject对象
student.put("address", address); JSONArray family = new JSONArray();
JSONObject father = new JSONObject();
father.put("name", "小明老爸");
father.put("age", 40);
JSONObject mother = new JSONObject();
mother.put("name","小明老妈");
mother.put("age",41);
/*add(value)是JSONArray对象添加元素方法
* value可以是String和JSONObject对象或JSONArray对象
*/
family.add(father);
family.add(mother);
//put(key,value)添加JSONArray对象
student.put("family", family);
/*
* JSONObject对象调用元素用get(key)方法
* key为键名
*/
System.out.println(student.get("name"));
//输出结果 小明
System.out.println(student.get("sno"));
//输出结果 20160000 /*
* JSONObject对象(jsonObject)调用JSONObject对象元素(两种方法)
* 1.jsonObject.getJSONObject(key),key为键名,返回JSONObject对象
* 2.(JSONObject)jsonObject.get(key),key为键名,获得JSONObject对象
*
*/
System.out.println(student.getJSONObject("address"));
System.out.println((JSONObject)student.get("address"));
//以上两种获取结果相同都是
//{"city":"石家庄市","country":"长安区"} /*
* JSONObject对象(jsonObject)调用JSONArray对象元素(两种方法)
* 1.getJSONArray(key),key是键名,返回JSONArray对象
* 2.(JSONArray)jsonArray.get(key),key是键名,获取JSONArray对象
*/
System.out.println(student.getJSONArray("family"));
System.out.println((JSONArray)student.get("family"));
//以上两种获取结果相同都是
//[{"name":"小明老爸","age":40},{"name":"小明老妈","age":41}]

三、如何从JSONArray添加元素方法add(value)和调用元素的方法get(i)

1.add(value)方法

value可以是String对象,JSONArray对象,JSONObject对象

2.get(i)方法

i是元素下标,从0开始

3.getJSONObject(i)方法

获取JSONObject对象元素,i是元素下标,从0开始

3.getJSONArray(i)方法

获取JSONArray对象元素,i是元素下标,从0开始

示例如下

         JSONArray pigs = new JSONArray();
JSONObject pig1 = new JSONObject();
pig1.put("name", "佩奇");
JSONObject pig2 = new JSONObject();
pig2.put("name", "猪猪侠");
pigs.add("八戒");
pigs.add(pig1);
pigs.add(pig2);
/*
* 这样构造的JSONArray对象如下
* ["八戒",{"name":"佩奇"},{"name":"猪猪侠"}]
*/
System.out.println(pigs.get(0));
//结果为 八戒
//因为JSONArray对象pigs的第二个元素类型是JSONObject,所以可以使用getJSONObject(key)方法
System.out.println(pigs.getJSONObject(1));
//结果如下
//{"name":"佩奇"}

补充

1.JavaScript中获取JSONObject对象元素

student = {"name":"小明","sno":"20160000"}

例如获取姓名student.name

2.JavaScript中获取JSONArray对象元素

示例

family = [{"name":"小明老爸","age":40},{"name":"小明老妈","age":41}]

获取第一个元素:{"name":"小明老爸","age":40}

family[0]

JSONObject和JSONArray所需j全部Jar包链接

https://pan.baidu.com/share/init?surl=RPmxNKqmjRjzn9P3NFVKAg

提取码:uhw1

如有疑问,联系作者qq:2210756109

JSONObject和JSONArray的基本使用的更多相关文章

  1. json学习系列(6)JSONObject和JSONArray是JDK的集合部分延伸

    我一直觉得JSONObject和JSONArray是JDK集合部分的延伸,它们与JDK的List和Map一脉相承.通过研究JSONObject和JSONArray的结构,我们顺便也复习一下JDK的内容 ...

  2. JSONObject与JSONArray的使用

    1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons ...

  3. Java学习笔记50:JSONObject与JSONArray的使用

    Java不像PHP解析和生产JSON总是一个比较痛苦的过程.但是使用JSONObject和JSONArray会让整个过程相对舒服一些. 需要依赖的包:commons-lang.jar commons- ...

  4. Gson解析JsonObject和JsonArray

    Gson中重要的几个核心类: Gson.JsonParser.JsonObject.JsonArray. 下面就是解析的步骤: public void parserJsonArray(String s ...

  5. JSONObject和JSONArray

    点击下载json工具 点击下载支持jar包 1.从Object到String 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可 ( ...

  6. [转]JSONObject与JSONArray的使用

    http://www.cnblogs.com/xwdreamer/archive/2011/12/16/2296904.html 参考文献: http://blog.csdn.net/huangwuy ...

  7. json:JSONObject与JSONArray的使用

    1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons ...

  8. JSONObject和JSONArray区别及基本用法

    一.JSONObject和JSONArray的数据表示形式 JSONObject的数据是用 {  } 来表示的, 例如:   { "id" : "123", & ...

  9. fastjson如何判断JSONObject和JSONArray

    1.fastjson如何判断JSONObject和JSONArray,百度一下,教程还真不少,但是是阿里的fastjson的我是没有找到合适的方法.这里用一个还算可以的方法,算是实现了这个效果. 网上 ...

  10. JSONObject、JSONArray、Map、JavaBean的相互转换

    1,JSONObject json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value} 2,JSONArray json数组,使用中括号[ ],只不过数组里面的项也是json键 ...

随机推荐

  1. decltype关键字

    decltype用于编译时类型推导,是以一个普通表达式作为参数,返回该表达式的类型,而且decltype并不会对表达式进行求值. decltype的用法: //推导出表达式类型 ; decltype( ...

  2. 201771010123汪慧和《面向对象程序设计Java》第十六周实验总结

    一.理论部分 1.程序与进程的概念 ‐程序是一段静态的代码,它是应用程序执行的蓝本. ‐进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕的一个完整过程. ‐操作系统为每个进程分配一段独立的 ...

  3. Linux下mysql5.7安装

    当前最新版本为5.7,此次将分别采用yum安装和tar包编译安装的方式分别说明. 一.Yum安装 A:获取repo源 [root@localhost ~]# wget http://dev.mysql ...

  4. dp--分组背包 P1757 通天之分组背包

    题目背景 直达通天路·小A历险记第二篇 题目描述 自01背包问世之后,小A对此深感兴趣.一天,小A去远游,却发现他的背包不同于01背包,他的物品大致可分为k组,每组中的物品相互冲突,现在,他想知道最大 ...

  5. JavaScript 之 web API

    1.获取元素 document.getElementById('标签的id值'); document.getElementsByTagName('标签名'); document.getElements ...

  6. UML-用例关联

    1.用例关联:就是各个用例之间的关系,分3种关系分别是:包含关系.扩展关系.泛化关系. 2.包含关系 1).示例 2).使用场景 A.用例在其他用例中重复使用 B.用例非常复杂冗长,将其分解为子单元便 ...

  7. 机器学习分布式框架horovod安装 (Linux环境)

    1.openmi 下载安装 下载连接: https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.1.tar.gz 安装命令 1 ...

  8. HGP|VCG|UK10K|中科院职业人群队列研究计划|药物基因组学

    全球性计划:表观组计划:肝计划 测1000人的变异level HGP计划三个阶段,范围逐步扩大和深化. Pilot:deep sequence---low coverage Phase 1 Phase ...

  9. CVPR2019 | 超越Mask R-CNN!华科开源图像实例分割新方法MS R-CNN

    安妮 乾明 发自 凹非寺 本文转载自量子位(QbitAI) 实习生又立功了! 这一次,亮出好成绩的实习生来自地平线,是一名华中科技大学的硕士生. 他作为第一作者完成的研究Mask Scoring R- ...

  10. MVC——再探MVC——增删查改

    MVC 是我大学学的比较弱的,甚至不懂原理.(那时候都在准备蓝桥杯 软件杯比赛.) 在重新学 肯定要学MVC 现在知道了为什么叫MVC了  MVC是怎么工作的 MVC 是一个设计模式 控制器(Cont ...