JSONObject与JSONArray总结及部分使用

2023-11-01

**

例如

**:在这里插入图片描述
取出name4值过程步骤:1,将以上字符串转换为JSONArray对象;2,取出对象的第一项,JSONObject对象;3,取出name1的值JSONObject对象;4,取出name2的值JSONObject对象;5,取出name4的值value2。

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

————————————————
原网址(总结借鉴一部分):https://blog.csdn.net/lishuangzhe7047/article/details/28880009

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

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

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

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

Json,String,Map之间的转换

原网址(https://www.cnblogs.com/fgm119/p/3907085.html)

前提是String的格式是map或json类型的
String 转Json

 JSONObject  jasonObject = JSONObject.fromObject(str);

String 转Map

JSONObject  jasonObject = JSONObject.fromObject(str);
Map map = (Map)jasonObject;

在网页之间传递数据出现中文乱码解决方案:

例如请求接口返回一个map或json数据,包含中文

1,先将map或json转成string格式,如果是map类型的,先转成:
json JSONObject json=new JSONObject(map);

json.toJSONString();转成string格式
2,利用URLEncoder.encoder(str,“UTF-8”)或"GBK"对string加密处理,发送加密后的str

3,在接受端,收到str后,URLDecoder.decoder(str,“UTF-8”)解密成正常str,一般要转成json需要去掉开始结尾的引号,str=str.substring(1,str.length()-1),再用JSONObject.formObject(str)将str转成json;之后需要转map,Map map = (Map)json即可

===========================================
// 判读输出对象的类型

boolean isArray = jsonObject.isArray();
boolean isEmpty = jsonObject.isEmpty();
boolean isNullObject = jsonObject.isNullObject();
System.out.println("是否为数组:" + isArray + ", 是否为空:" + isEmpty + ", isNullObject:" + isNullObject);

// 添加属性,在jsonObject后面追加元素。

JsonElement的简单说明
https://blog.csdn.net/chunqiuwei/article/details/49160321

 jsonObject.element("address", "福建省厦门市");
    System.out.println("添加属性后的对象:" + jsonObject);
    System.out.println("-------------------------------------------------");
    // 返回一个JSONArray对象
    JSONArray jsonArray = new JSONArray();
    jsonArray.add(0, "this is a jsonArray value");
    jsonArray.add(1, "another jsonArray value");
    jsonObject.element("jsonArray", jsonArray);
    //在jsonObject后面住家一个jsonArray
    JSONArray array = jsonObject.getJSONArray("jsonArray");
    System.out.println("jsonObject:   "+jsonObject);
    System.out.println("返回一个JSONArray对象:" + array);

具体如何使用可以参考:https://www.cnblogs.com/xiaoliu66007/p/4610829.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSONObject与JSONArray总结及部分使用 的相关文章

随机推荐

  • 7、变量进阶

    7 变量进阶 理解 目标 变量的引用 可变和不可变类型 局部变量和全局变量 01 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1 1 引用的概念 在 Py
  • [论文阅读]《how to share a secret》

    how to share a secret Adi Shamir 文章主要讲了如何将数据D分为n份 任意k份可以重组成D 任意k 1份不会泄露任何关于D的信息 这种技术能为密码系统构建鲁棒的密钥管理机制 即使灾难破坏一半信息或者安全性被破坏
  • 浅谈C++

    引子 程序运行时产生的数据都属于临时数据 程序一旦运行结束都会被释放通过文件可以将数据持久化 C 中对文件操作需要包含头文件 lt fstream gt C 提供了丰富的文件操作功能 你可以使用标准库中的fstream库来进行文件的读取 写
  • 【接口测试】POST请求提交数据的三种方式及Postman实现

    1 什么是POST请求 POST请求是HTPP协议中一种常用的请求方法 它的使用场景是向客户端向服务器提交数据 比如登录 注册 添加等场景 另一种常用的请求方法是GET 它的使用场景是向服务器获取数据 2 POST请求提交数据的常见编码格式
  • 【从零到一的Raspberry】数莓派踩坑实录(二) 内核编译配置和模块安装

    写在前面 本次作业具有挑战性 不过不管哪一环节出错了 你都要知道如何把它还原到初始状态 这样你就不是在危险地操作 而有还原的保障 因此在第0节我会介绍一种还原数莓派系统的方法 这样你就可以在内核无法运行时还原到默认系统 后面从第一章开始 带
  • AD 利用IPC封装创建向导快速创建封装

    首先在扩展更新里查看是否有IPC封装 工具里面第二个会有很多常见封装类型 选择SOP NEXT 会填写一些数据 相对应在数据手册上进行填写即可 下图左上角问的是要不要加散热焊盘 散热焊盘主要看原件是否真实需要 上图要填的值一般来说默认就可以
  • Ubuntu无法连接网络?

    文章目录 适用情况 Windows网络配置和虚拟机网络配置 Windows网络适配器配置 Ubuntu设置静态IP 图形化界面操作 指令文件操作 如果重新设置好以后 依旧不行 适用情况 如果您无法知晓 虚拟机出现是什么问题 始终就是无法连接
  • 黑盒测试的范围内容

    1 功能错误或遗漏 2 界面错误 3 数据结构或外部数内容据库访问错误 4 性能错误 5 初始化和终止错误
  • 动态规划(js版)

    1 动态规划算法介绍 理解动态规划 知乎好文 LeetCode简单的动态规划题 斐波那契数 爬楼梯 使用最小花费爬楼梯 有点小坑 不同路径 不同路径 II 注意初始值的设置 最小路径和 LeetCode较难的动态规划题 343 整数拆分 9
  • 哈希(Hash)与算法的衡量

    对于map来说 背后就是平衡搜索二叉树 具体可见 https blog csdn net weixin 42513339 article details 88889306 空间复杂度为 O logN 对于unorder map来说 背后就是
  • ubuntu18.04安装xmind思维导图 + 创建软件的快捷方式

    ubuntu18 04安装xmind思维导图 sh文件运行小知识 创建快捷方式 1 下载linux版本的 zip压缩包 2 运行sudo setup sh 2 1 sh 文件相关知识 补充 3 启动xmind 3 1 启动失败 font f
  • ggplot2中的条形图 geom_bar()

    20150226 1 ggplot 能直接计算aes 中x变量各个分类的数目 所以可以直接用原始数据 而不用像plot 一样要table 数据 2 geom bar mapping NULL data NULL stat bin posit
  • 从零搭建 Spring Cloud 服务(超级详细)

    点击上方 Java后端 选择 设为星标 优质文章 及时送达 作者 Anakki 链接 blog csdn net qq 29519041 article details 85238270 这里会介绍很多基础知识 直接想开始搭建微服务的可以看
  • 小学思品课如何使用计算机教学设计,关于小学思品教学设计与反思

    关于小学思品教学设计与反思 小学思想品德节约用水教学设计与反思 节约用水 教学设计与反思 一 指导思想 品德与生活课 注重学生的实践与参与性 突出教学实效性 让学生通过丰富的教学活动去亲身体验 亲自感受水的重要与水资源的匮乏 从而形成自觉的
  • Win10 系统下VisualStudio2019 配置Open3D-0.15.2(C++)

    目录 一 下载Open3D 0 15 2 二 编译 font color dd00dd 1 新建文件 CmakeList txt TestVisualizer h TestVisualizer cpp font color dd00dd 2
  • 进程、线程与JVM、CLR

    进程和线程的关系 网上有一副很经典的图可以让我们来理解进程和线程的关系 下面这副图是一个双向多车道的道路图 假如我们把整条道路看成是一个 进程 的话 那么图中由白色虚线分隔开来的各个车道就是进程中的各个 线程 了 这副图出自 http ww
  • chroot命令的基本用法

    chroot 切换根目录 chroot PATH TO TEMPROOT COMMAND chroot test virrot bin bash 切换根目录 并明确指明运行那个目录下面的bash 例子 切换根目录 root gdy ftpf
  • 实战Elastic Stack分析K8S应用日志--部署logstash

    logstash从kafka取数据输出到es 部署logstash docker pull logstash 6 8 6 docker images grep logstash docker tag d0a2dac51fcb harbor
  • 【M malloc送书第二期】朋友圈大佬都去读研了,这份备考书单我码住了!

    文章目录 01 数据结构与算法分析 02 计算机网络 自顶向下方法 03 现代操作系统 04 深入理解计算机系统 01 概率论基础教程 原书第10版 03 线性代数及其应用 八九月的朋友圈刮起了一股晒通知书潮 频频有大佬晒出 研究生入学通知
  • JSONObject与JSONArray总结及部分使用

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