Java之JSON处理(JSONObject、JSONArray)
依赖包:json-20180130.jar
MAVEN地址:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
</dependency>
比较简单,一看就懂,源码如下:
package json; import org.json.JSONArray;
import org.json.JSONObject; import java.util.HashMap;
import java.util.Map; /**
* JSONObject和JSONArray使用:进行JSON对象转换和操作
* JSONObject:处理JSON串,多种构造方法,可用于多类型转账。
* JSONArray:JSON数组,有顺序
*/
public class JsonFirst {
public static void main(String[] args) {
// 1、定义一个json对象
JSONObject jo = new JSONObject();
jo.put("id", "1");
jo.put("name", "tom");
jo.put("age", "25");
System.out.println("1、JSONObject: " + jo);
// 获取name值
String name = jo.getString("name");
System.out.println("查询name:" + name); // 2、定义一个Json数组,数组有顺序
JSONArray ja = new JSONArray();
ja.put(0, "yang");
ja.put(1, "li");
ja.put(2, "zhang");
ja.put(4, "fouth");
System.out.println("2、JSONArray数组: " + ja);
// 获取第四个值
String fouth = ja.getString(4);
System.out.println("查询第四个:" + fouth); // 3、json中添加json对象组成复杂JSON
jo.put("Object", ja);
System.out.println("3、添加JSON对象后: " + jo); // 4、String转换为JSON(复杂JSON处理)
String str = "{\"name\":\"tom\",\"Object\":[\"yang\",\"li\",\"zhang\",null,\"fouth\"],\"id\":\"1\",\"age\":\"25\"}";
JSONObject jo2 = new JSONObject(str);
System.out.println("4、String转换为JSON:" + jo2);
System.out.println("name属性值:" + jo2.getString("name"));
System.out.println("Object属性值:" + jo2.get("Object").toString());
// 删除Object属性值
jo.remove("Object");
System.out.println("删除Object属性值:" + jo); // 5、map和JSON转换
Map<String, String> map1 = new HashMap<String, String>();
map1.put("name", "Alexia");
map1.put("sex", "female");
map1.put("age", "23");
JSONObject jo3 = new JSONObject(map1);
System.out.println("5.1 map转JSON:" + jo3);
Map<String, Object> map2 = new HashMap<String, Object>();
map2 = jo3.toMap();
System.out.println("5.2 JSON转map:" + map2); // 6、JSONArray中添加map和JSON对象
JSONArray jo4 = new JSONArray();
jo4.put(map1);
jo4.put(1, "333");
jo4.put(jo);
System.out.println("6、JSONArray中添加map和JSON对象:" + jo4); }
}
运行结果:
1、JSONObject: {"name":"tom","id":"1","age":"25"}
查询name:tom
2、JSONArray数组: ["yang","li","zhang",null,"fouth"]
查询第四个:fouth
3、添加JSON对象后: {"name":"tom","Object":["yang","li","zhang",null,"fouth"],"id":"1","age":"25"}
4、String转换为JSON:{"name":"tom","Object":["yang","li","zhang",null,"fouth"],"id":"1","age":"25"}
name属性值:tom
Object属性值:["yang","li","zhang",null,"fouth"]
删除Object属性值:{"name":"tom","id":"1","age":"25"}
5.1 map转JSON:{"name":"Alexia","age":"23","sex":"female"}
5.2 JSON转map:{sex=female, name=Alexia, age=23}
6、JSONArray中添加map和JSON对象:[{"name":"Alexia","age":"23","sex":"female"},"333",{"name":"tom","id":"1","age":"25"}]
Java之JSON处理(JSONObject、JSONArray)的更多相关文章
- java和js中JSONObject,JSONArray,Map,String之间转换
--------------------------------------------------Java中--------------------------------------------- ...
- json Map JsonObject JsonArray
json字符串是不应包含 "\"转义字符的,json不能通过js json工具转换或者java json工具 包转换那么一定程度上json字符串已被在一次处理不在能转成json了. ...
- Java转json
一.json介绍 1. 作用:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,是存储和交换文本信息的语法. 2.json以key-value的格式书写,数 ...
- java 字符串解析为json 使用org.json包的JSONObject+JSONArray
参考: https://blog.csdn.net/xingfei_work/article/details/76572550 java中四种json解析方式 JSONObject+JSONArray ...
- Introduction to Structured Data json的2种形式 JAVA解析JSON数据 - JsonArray JsonObject
https://developers.google.com/search/docs/guides/intro-structured-data Structured data refers to kin ...
- json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)
1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http:// ...
- json:JSONObject与JSONArray的使用
1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons ...
- java.sql.Date赋值给了java.util.Date.转化成JSONArray时出错net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
net.sf.json.JSONException: java.lang.reflect.InvocationTargetExceptionat net.sf.json.JSONObject.defa ...
- java fastjson:Map与json以及JSONObject ,JSONObject与String互转
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson ...
随机推荐
- Fedora安装Snapd和Snap软件包
导读 Snappy包管理器是一个跨发行版的包管理器.它最初是为Ubuntu系统构建的,但现在其他主要的Linux发行版( Fedora, Linux Mint, RHEL, OpenSUSE,Arch ...
- 个人向 - vscode插件记录
现在用的编译器的是vscode,本身这个编译器很小,很多功能都没有,需要自己下载一些插件来完善功能,不知不觉下载的插件也有三十多个了,感觉需要记录一下. tips:1. vscode插件的安装位置:’ ...
- ESP32 TIMER
ESP32有两组硬件计时器组,每组包含两个通用硬件计时器.这些计时器都是64位的可双向计数的计数器: 下面的步骤是典型的配置和操作定时器流程: 第一:初始化: 初始化定时器通过函数:timer_ini ...
- Luogu P1962 斐波那契数列(矩阵乘法模板)
传送门(其实就是求斐波那契数列....) 累了 明天再解释 做这道题需要一些关于矩阵乘法的基础知识. 1. 矩阵乘法的基础运算 只有当矩阵A的列数等于矩阵B的行数时,A与B可以相乘(A的行数不一定等于 ...
- kubernete 数据库 etcd
etcdctl --cert-file /etc/ssl/etcd/ssl/member-pserver78.pem --key-file /etc/ssl/etcd/ssl/member-pserv ...
- linux调度器源码分析 - 运行(四)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 引言 之前的文章已经将调度器的数据结构.初始化.加入进程都进行了分析,这篇文章将主要说明调度器是如何在程序稳定运 ...
- 走近SpringBoot
(博客园不支持MarkDown编辑,看完整版请移步:https://www.zybuluo.com/Allen-llh/note/1199946) 1. (Building a RESTful Web ...
- ASP.NET Core MVC中Controller的Action,默认既支持HttpGet,又支持HttpPost
我们知道ASP.NET Core MVC中Controller的Action上可以声明HttpGet和HttpPost特性标签,来限制可以访问Action的Http请求类型(GET.POST等). 那 ...
- 【php增删改查实例】第十一节 - 部门管理模块(编辑功能)
9. 编辑部门功能的实现 思路:只允许用户勾选一条数据,点击编辑按钮,会跳出一个和新增数据类似的对话框.然后,用户可以修改部门名称和部门编码.点击保存按钮,提示修改成功. 9.1 前台代码编写 < ...
- 2016年总结 - Java程序员
一 . 技术积累 (1)代码规范 1.1.1.通常的模块分布:一般如果你要实现一个web应用,你从后台将数据展示到前端页面,在一个比较大的公司,你少不了跟其他项目有交集(你调用他的接口,他依赖你的接口 ...