JSONObject、JSONArray

JSONObject、JSONArray最近两个星期接触最多的就是json和map了。  之前用到的json,就是一个键对应一个值,超级简单的一对一关系。现在用到的json那可以层层嵌套啊,刚开始接触的时候,确实有种崩溃的赶脚,不想去理,取个数据还那么麻烦。其实,就跟ifelse语句一样,如果if中套if,if中再套if,写的规范了还行,要是代码格式不规范,那我们肯定也看着麻烦。所以啊,对于json嵌套,只要记住符号“:”前是键

大家好,又见面了,我是你们的朋友全栈君。

   最近两个星期接触最多的就是json和map了。

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

JSONObject、JSONArray

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

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


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

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

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

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

1,JSONObject

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

2,JSONArray

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


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

JSONObject Json = new JSONObject();
JSONArray JsonArray = new JSONArray();

Json.put("key", "value");//JSONObject对象中添加键值对
JsonArray.add(Json);//将JSONObject对象添加到Json数组中

3,JSONObject与Map

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

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

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

  现在我可以说对map,json很了解,当初学习那会,可以说提到map就头疼,我嫌麻烦,对map和json会简单应用了就过了。现在工作了又捡起来重新学习了一次。出来混,早晚问题都是你的,哈哈。。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136268.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 朋友圈加粗字体数字_独家:微信更新!公众号改版,朋友圈视频号直播置顶支持一键关闭…

    朋友圈加粗字体数字_独家:微信更新!公众号改版,朋友圈视频号直播置顶支持一键关闭…刚刚,微信安卓端内测更新至7.0.21版本,上线多项新功能,此前被大部分用户吐槽的“朋友圈置顶朋友分享视频号直播”功能也在这次得到了解决。1、“朋友圈置顶朋友分享的直播”支持一键关闭因为引起广泛讨论,此前“朋友圈置顶朋友分享的直播”曾短暂下线,这次回归,为运营者保留引流渠道的同时,也把该功能的开关权限交到了用户手上。更新后的“朋友圈置顶朋友分享的直播”,直播间卡片底部新增分享者头像,用户可以由此知…

    2022年5月7日
    71
  • 常见电商项目的数据库表设计(MySQL版)

    常见电商项目的数据库表设计(MySQL版)常见电商项目的数据库表设计(MySQL版)简介:目的:电商常用功能模块的数据库设计常见问题的数据库解决方案环境:MySQL5.7图形客户端,SQLyogLinux模块:用户:注册、登陆商品:浏览、管理订单:生成、管理仓配:库存、管理电商实例数据库结构设计:电商项目用户模块用户表涉及的实体改进1:第三范式:将依赖传递的列分离出来。比如:登录…

    2022年6月20日
    30
  • Python面试题之基础篇(一)「建议收藏」

    PHP中文网为大家准备了Python面试题,本文是一些基础问题。例如:为什么学习Python、通过什么途径学习Python、谈谈对Python和其他语言的区别、简述解释型和编译型编程语言,等等。

    2022年1月18日
    92
  • 架构设计——ID生成器「建议收藏」

    架构设计——ID生成器「建议收藏」一、分布式ID发号器要求很明确:不同机器同一时间生成不同ip;同一机器不同时间生成不同IP;所以根据需求,可选变量有:机器(网卡、IP)+时间,随机数二、WhynotUUID?UUID的实现:算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成UUID。优势:保证唯一性;本地调用,不需要rpcUUID的缺陷:1.UUID较长,占用内存空间;往往用字符串表示…

    2022年6月15日
    40
  • POJ1488 UVA272 UVALive5381 TEX Quotes【输入输出】

    POJ1488 UVA272 UVALive5381 TEX Quotes【输入输出】

    2021年9月16日
    51
  • SSL证书安装指引

    SSL证书安装指引https://cloud.tencent.com/document/product/400/4143下载得到的www.domain.com.zip文件,解压获得3个文件夹,分别是Apache、

    2022年8月2日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号