json,就是一个键对应一个值,超级简单的一对一关系。现在用到的json那可以层层嵌套啊,刚开始接触的时候,确实有种崩溃的赶脚,不想去理,取个数据还那么麻烦。其实,就跟if else语句一样,如果if中套if,if中再套if,写的规范了还行,要是代码格式不规范,那我们肯定也看着麻烦。所以啊,对于json嵌套,只要记住符号“:”前是键,符号后是值大括号成对找,一层层剥开,就清楚了。 举个例子说明,如下:

[{name1:{name2:{name3:'value1',name4:'value2'}}},{}]

  从外到里看,例子中就是一个数组,数组里面是两个json格式的字符串。这样分析思路就清晰多了。

工作中需要取出name4的值,你们会怎么取呢?。最初我都想过字符串截取,那时还不了解JSONArray,现在知道了,取出来也就相当容易了。

取出name4值过程步骤:1,将以上字符串转换为JSONArray对象;2,取出对象的第一项,JSONObject对象;3,取出name1的值JSONObject对象;4,取出name2的值JSONObject对象;5,取出name4的值value2。

示例中json数组格式的字符串可以通过方法直接转换为JSONArray的格式:

  JSONArray.fromObject(String)

  1. JSONArray getJsonArray=JSONArray.fromObject(arrayStr);//将结果转换成JSONArray对象的形式
  2. JSONObject getJsonObj = getJsonArray.getJSONObject(0);//获取json数组中的第一项
  3. String result=getJsonObj.getJSONObject("name1").getJSONObject("name2").getJSONObject("name4");

好了我们说说这两个对象。

1,JSONObject

json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value}

2,JSONArray

json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的

Json对象中添加的是键值对,JSONArray中添加的是Json对象

  1. JSONObject Json = new JSONObject();
  2. JSONArray JsonArray = new JSONArray();
  3. Json.put("key", "value");//JSONObject对象中添加键值对
  4. JsonArray.add(Json);//将JSONObject对象添加到Json数组中

3,JSONObject与Map

Map map和json都是键值对,不同的是map中键值对中间用等号分开,json中键值对中间用冒号分开。其实json就是一种特殊形式的map。

  1. Map<String,String> strmap=new JSONObject();

这里的需求是:request对象获取的map,想要返回json格式也不用白费力了。

JSONObject、JSONArray区别的更多相关文章

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

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

  2. jsonObject jsonarray

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

  3. Android-json解析:原生JSONObject+JSONArray的使用【转】

    原文地址:https://blog.csdn.net/sinat_31057219/article/details/71518123 一.JSONObject和JSONArray的数据表示形式 JSO ...

  4. java JSONObject/JSONArray详解

    应用架包:json-lib-2.4-jdk15.jar.及相关依赖架包. 一.JSONObject和JSONArray对象 -------------------------------------- ...

  5. jsonObject jsonArray jsonTokener jsonStringer,json解析以及http请求获取josn数据并加以解析

    JSON的定义: 一 种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的 支持),从而可以在不同平台间进行 ...

  6. java 字符串解析为json 使用org.json包的JSONObject+JSONArray

    参考: https://blog.csdn.net/xingfei_work/article/details/76572550 java中四种json解析方式 JSONObject+JSONArray ...

  7. [转]json+JSONObject+JSONArray 结合使用

    JSONObject与JSONArray的区别简述: 区别在于JSONObject是一个{}包裹起来的一个对象(Object),而JSONArray则是[]包裹起来的一个数组(Array),说白点就是 ...

  8. JSONObject,JSONArray,Map,String之间转换

    http://blog.csdn.net/superit401/article/details/51727739 1.String转JSONObject String jsonMessage = &q ...

  9. [JSONObject/JSONArray] - 定制的JSON格式返回

    当前开发的程序中.因为抛弃了jsp的渲染,改为thymeleaf,并在比较厉害的前端进行数据json的渲染无误后,得出此json数据返回. 以往的Map<String,Object>返回j ...

随机推荐

  1. WebService -- Java 实现之 CXF ( 添加系统预定义的拦截器)

    1. 概述 CXF允许我们在webservice的in/out位置添加拦截器.拦截器有两大分类,一类是系统预定义的:另一类是自定义拦截器. 2. 在server端添加拦截器. JaxWsServerF ...

  2. touch命令

    [touch]      改变文件的时间戳 命令格式: touch [OPTION]... FILE... 命令功能: 更新每个文件的访问和修改时间到当前时间或建立一个不存在的文件 命令参数: -a  ...

  3. python 使用pymssql连接sql server数据库

    python 使用pymssql连接sql server数据库   #coding=utf-8 #!/usr/bin/env python#------------------------------ ...

  4. 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式

    1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet'  href='bootstrap-3.3.0-dist/dist/css ...

  5. cocos2d-js 学习笔记 --安装调试(1)

    目前从国内来看,比较知名的,适合前端程序员使用的游戏框架,基本是 egret 和cocos2d-js;刚好两个框架都学习了下, egret的是最近兴起的一个框架主要使用TypeScript.js语言做 ...

  6. window下安装anaconda ipython和spyder都打不开

    1. 环境 win7 64位,软件是Anaconda2-4.1.1-Windows-x86_64.exe 2. 出现的问题 ipython打不开,一闪而过 spyder点击没有反应 anaconda ...

  7. silverlight 流程设计器,流程引擎

    (图一流程设计器包含元素) (图一流程设计器实现功能) (流程引擎工作原理) (流程数据库设计) (流程数据库设计) (流程数据库设计) (工作流程设计器实现效果图) (代码结构图) 无法上传附件,需 ...

  8. C# 类使用小demo

    太晚了,不说了,直接上图 运行结果

  9. JavaScript跨域提交数据

    1.通过jsonp跨域    场景:假设前台有JS方法"crossJS", 1.1发送请求http://www.xxx.com/?callback=crossJS.(创建一个scr ...

  10. vue简单使用

    <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...