【JSON】04_JSON的生成与解析
NO1.生成JSON
package my;import java.util.ArrayList;
import java.util.List;import org.json.JSONArray;
import org.json.JSONObject;public class CreateJSON
{//生成JSONObjectpublic static void test1(){JSONObject j1=new JSONObject();j1.put("name", "聪聪");j1.put("id", 2019510001);j1.put("sex", true);j1.put("phone", 1375697812);String jsonstr=j1.toString(2);System.out.println(jsonstr);}//生成JSONArray:元素是字符串public static void test2(){JSONArray j2=new JSONArray();j2.put("chen");j2.put("wang");j2.put("sun");j2.put("jin");String jsonstr=j2.toString(2);System.out.println(jsonstr);}//- 可以直接把一个普通的JAVA对象转成JSONObject (前提是该类的属性有getter和setter)//例如,Student类的所有属性都已经添加了getter和setter,所以可以直接转成JSON对象// POJO -> JSONObject// 如果是POJO对象 ( 已经添加了 getter ),则可以直接转成JSONObjectpublic static void test3(){Student stu = new Student("丽丽", 2019510002, true, "1349687456");JSONObject j = new JSONObject(stu);String jsonstr = j.toString(2); // 缩进2System.out.println(jsonstr);}// List -> JSONArraypublic static void test4(){List<Student> sss = new ArrayList();sss.add(new Student("陈聪聪", 2019510001, true, "13781564977"));sss.add(new Student("朱佳瑜", 2019510002, true, "1351236477"));sss.add(new Student("刘鑫雨",2019510003, false, "13774155575"));sss.add(new Student("高婉婷", 2019510004, true, "13357575757"));JSONArray jarray = new JSONArray();for( Student s : sss){JSONObject j1 = new JSONObject(s);jarray.put( j1 );}String jsonstr = jarray.toString(2); // 缩进2System.out.println(jsonstr);}// List -> JSONArraypublic static void test5(){List<Student> sss = new ArrayList();sss.add(new Student("shao", 1238901, true, "13810012345"));sss.add(new Student("wang", 1238902, true, "13456678895"));sss.add(new Student("qian", 1238903, false, "1381432435"));sss.add(new Student("chen", 1238904, true, "13342353446"));// 直接把ArrayList转成JSON,前提是ArrayList里的元素是可以转化的JSONArray jarray = new JSONArray(sss);String jsonstr = jarray.toString(2); // 缩进2System.out.println(jsonstr);}public static void main(String[] args){test3();}
}
输出结果:
test1
{"phone": 1375697812,"sex": true,"name": "聪聪","id": 2019510001
}
test2
["chen","wang","sun","jin"
]
test3
{"phone": "1349687456","sex": true,"name": "丽丽","id": 2019510002
}
test4
[{"phone": "13781564977","sex": true,"name": "陈聪聪","id": 2019510001},{"phone": "1351236477","sex": true,"name": "朱佳瑜","id": 2019510002},{"phone": "13774155575","sex": false,"name": "刘鑫雨","id": 2019510003},{"phone": "13357575757","sex": true,"name": "高婉婷","id": 2019510004}
]
NO2.解析JSON
package my;import org.json.JSONArray;
import org.json.JSONObject;public class ParseJSON
{// 如果jsonstr是一个Objectpublic static void test1(String jsonstr) throws Exception{JSONObject j = new JSONObject(jsonstr); // 解析jsonstr文本, 转成JSONObjectString name = j.getString("name");int id = j.getInt("id");boolean sex = j.getBoolean("sex");String phone = j.getString("phone");// 还可以复杂类型的字段, 逐层提取即可// JSONObject subobj = j.getJSONObject("xxx");// JSONArray subarray = j.getJSONArray("yyy");}// 如果jsonstr是一个Arraypublic static void test2(String jsonstr) throws Exception{JSONArray jarray = new JSONArray(jsonstr);for(int i=0; i<jarray.length() ;i ++){JSONObject j1 = jarray.getJSONObject(i);String name = j1.getString("name");int id = j1.getInt("id");boolean sex = j1.getBoolean("sex");String phone = j1.getString("phone");}}public static void main(String[] args){}
}
Student里填入类的属性信息
package my;public class Student
{public String name;public int id;public boolean sex;public String phone;constructors /public Student(){}public Student(String name, int id, boolean sex, String phone){this.name = name;this.id = id;this.sex = sex;this.phone = phone;}// getters and setters //public String getName(){return name;}public void setName(String name){this.name = name;}public int getId(){return id;}public void setId(int id){this.id = id;}public boolean isSex(){return sex;}public void setSex(boolean sex){this.sex = sex;}public String getPhone(){return phone;}public void setPhone(String phone){this.phone = phone;}}
【JSON】04_JSON的生成与解析相关推荐
- Qt之JSON生成与解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December ...
- Android Json生成及解析实例
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...
- Restful API 生成复杂Json数据结构及使用客户端解析该数据结构(三)
前提说明:首先约定接口之前,需要约定接口的参数,接口参数包括输入参数和输出参数 输入参数:指接口调用时输入的参数 输出参数:即接口调用时返回的参数. 那么如果说,约定输入输出参数均需要采用Json结构 ...
- GeoJson的生成与解析,JSON解析,Java读写geojson,geotools读取shp文件,Geotools中Geometry对象与GeoJson的相互转换
GeoJson的生成与解析 一.wkt格式的geometry转成json格式 二.json格式转wkt格式 三.json格式的数据进行解析 四.Java读写geojson 五.geotools读取sh ...
- 18生成和解析JSON
18生成和解析JSON 1.什么是JSON?JSON的作用?如何编写JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ...
- JSON(生成和解析)
一.1. 什么是JSON,JSON的作用是什么,如何编写JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.采用完全独立于编 ...
- XML与JSON的生成与解析
1. XML 1.1 XML简介 可标记语言(extensible Markup Language) 特性: XML具有平台无关性,是一门独立的语言 XML具有自我描述性 XML功能: 网络传输文件 ...
- 使用JSONObject生成和解析json
使用JSONObject生成和解析json 1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组 Object 对象 null 空 ...
- android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法...
####问题描述 * java 解析多层含有泛型对象的json数据获取不到泛型类型 * 如果将泛型改成实际的类型就能正常解析 * 如果不改成实际的类型泛型数据被解析成com.google.gson.i ...
最新文章
- Spark SQL Catalyst源代码分析之TreeNode Library
- zookeeper单机单独实例安装-windows
- 不同场景下MySQL的迁移方案
- 【折腾】斐讯N1 安装 Docker + GUI
- Qt Dialog捕捉鼠标移动事件
- 面试题:左旋转字符串
- c语言220程序,电赛必备220个C语言实例源码分享
- java死锁怎么用jvm调试_性能测试之JVM的故障排查-死锁
- 在虚拟机中使用物理硬盘的两个用法及注意事项
- 【bzoj1614】[Usaco2007 Jan]Telephone Lines架设电话线 二分+SPFA
- sonar小白式入门
- wiringPi (C语言) 控制树莓派引脚
- 机器视觉检测技术之颜色视觉工具应用
- SEM和SEO的区别?
- Kafka集群搭建(四节点)
- 1T免费全能空间 注册即可开通
- 节奏大师显示服务器,节奏大师上线首日登录困难 服务器拖累腾讯游戏
- JavaScript 和 Macromedia Flash 之间的通信示例
- day 05 random time sys os pickle json re模块 爬取dytt
- YOLO多线程多模型运行模式的实施