Json的学习
json的简介
Json是项目中常用的一种,数据格式简单,易于读写,格式都是压缩的,占用带宽小,轻量级,支持多种语言,可以直接为服务器代码使用。
json常用支持的转化,(map集合,字符串,还有对象)
1 map集合转为json数据
//将map集合转化为json
public static void test1(){ Map<String,String> map=new HashMap<>(); map.put("name", "zhangsan");
map.put("age", "23");
map.put("nickname", "xiaozhang"); JSONObject jsonObject=new JSONObject(map);
System.out.println(jsonObject); }
2.对象转为json数据
// 将对象转化为json
public static void test2(){ Student student=new Student(1001,"张三",23); JSONObject jsonObject=new JSONObject(student); System.out.println(jsonObject);
}
3.字符串转为json
// 将字符串转为json
public static void test3(){ String str="{\"name\":\"李四\",\"age\":23,\"clas\":\"后台班\"}"; JSONObject jsonObject=new JSONObject(str); System.out.println(jsonObject);
}
二. 将json文件转化输出到控制台,也可以使用commons.io这个工具
InputStream in=super.getClass().getClassLoader().getResourceAsStream("test/stu.json");
//
// byte[] bs=new byte[1024];
//
// int len=-1;
// StringBuffer sb=new StringBuffer();
// while((len=in.read(bs))!=-1){
//// byte-->string
// String str=new String(bs,0,len);
// sb.append(str);
//
// }
//// Stringbuffer-->json
// String s=sb.toString();
使用commons.io一句话就可以实现将json文件转为string
String str=FileUtils.readFileToString(new File("E:\\eclipseWorkspace\\test\\src\\test\\stu.json"));
三、使用Java代码可以生成一个json文件
// 生成json文件
public void test5() throws IOException{
Map<String, Student> map=new HashMap<>(); Student stu1=new Student(1001,"张三",23);
Student stu2=new Student(1002,"李四",24);
Student stu3=new Student(1003,"王五",25); map.put("lxl", stu1);
map.put("zxl", stu2);
map.put("wxl", stu3);
// map-->json
JSONObject jsonObject=new JSONObject(map);
// 生成json文件
Writer writer =new FileWriter("E:\\eclipseWorkspace\\test\\src\\test\\student.json"); jsonObject.write(writer);
writer.close();
}
四、jsonArray的介绍(json数组)
一般形如 [{...}, {....},{....}]此种类型称为json数组
四、1 可以将字符串转为json数组
public void test6(){
String str=
"[{\"name\":\"张三\",\"age\":23},{\"class\":\"lxl\",\"num\":12},{\"school\":\"sun\",\"addr\":\"sh\"}]";
net.sf.json.JSONArray json=new net.sf.json.JSONArray();
json=json.fromObject(str);
System.out.println(json);
}
四 2 json-lib包的使用,导入jar包
核心代码:JsonArray json=new JsonArray;
json =fromObject(Object o);
实例代码 1.将map集合转为json数组
public void test7(){
Map<String, Student> map=new HashMap<>();
Student stu1=new Student(1001,"张三",23);
Student stu2=new Student(1002,"李四",24);
Student stu3=new Student(1003,"王五",25);
map.put("lxl", stu1);
map.put("zxl", stu2);
map.put("wxl", stu3);
net.sf.json.JSONArray json=new net.sf.json.JSONArray();
json=json.fromObject(map);
System.out.println(json);
}
五、使用jsonArray转为map
思路:先从jsonArray中获取每一个json,获取json的键值对,json.get(i)获取每一个json,强转为jsonObject对象,jsonObject.keySet()可以获取json的所有的键的值,jsonObject.get(key)获取value的值,map.put重新装入map集合中。
public void test8(){
String str=
"[{\"name\":\"张三\",\"age\":23},{\"class\":\"lxl\",\"num\":12},{\"school\":\"sun\",\"addr\":\"sh\"}]";
net.sf.json.JSONArray json=new net.sf.json.JSONArray();
json=json.fromObject(str);
// 从jsonarray中获取每一个json
for (int i=0; i<json.size() ;i++) {
Object o=json.get(i);//获取每一个json
net.sf.json.JSONObject jsonObject=(net.sf.json.JSONObject) o;
// 获取json的key/value
Map<String, Object> map=new HashMap<>();
Set<String> keys= jsonObject.keySet();//每个json的所有的key
for (String key : keys) {
Object value=jsonObject.get(key);
map.put(key, value);
}
System.out.println(map);
}
Json的学习的更多相关文章
- JSON 教程学习进度备忘
书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1. ______________ 知识点:1 ...
- Json.Net学习笔记
http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http ...
- Newtonsoft.Json(Json.Net)学习
转自原文 Newtonsoft.Json(Json.Net)学习笔记 Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库.软件下载地址: http://www.newto ...
- JSON的学习与使用
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- Android之Json的学习
json数据包含json对象,json数组,对象是{ },数组是[ ], 数组里面还可以包含json对象,json对象之间是用逗号(,)隔开 形式如下: { "languages" ...
- Newtonsoft.Json(Json.Net)学习笔记
Newtonsoft.Json 在Vs2013中就有自带的: 下面是Json序列化和反序列化的简单封装: /// <summary> /// Json帮助类 /// </summar ...
- JSON入门学习
JSON是一种与开发语言无关的轻量级的数据格式(JavaScript Object Notation) 优点:易于阅读和编写,易于程序解析和生产 JSON数据格式中没有日期及时间的数据格式的.一般直接 ...
- json官方学习档案
项目经常用json开发,但说实话,对json了解的一直不深入.今天看了下json的官方资料,明了很多. json官方网址:http://www.json.org/json-zh.html JSON(J ...
- Newtonsoft.Json(Json.Net)学习笔记-高级使用(转)
1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称 7.动态决定属性是否序列化 8.枚举值的自定义格式化问题 9.自定义类型转换 10.全 ...
- Newtonsoft.Json(Json.Net)学习笔记(转)
概述 Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库,通过Nuget获取.(查看原文) 下面是Json序列化和反序列化的简单封装: /// <summary&g ...
随机推荐
- 02-oracle中的基础sql
1.SQL SQL(Structured Query Language) 语言是目前主流的关系型数据库上执行数据操作.数据检索以及数据库维护所需要的标准语言,是用户与数据库之间进行交流的接口,许多关系 ...
- axios传参
get //通过给定的ID来发送请求 axios.get('/user?ID=12345') .then(function(response){ console.log(response); }).c ...
- JavaScript传递参数方法
1.SetTimer传递参数 setTimeout(function (obj) { obj.myScroll = new IScroll('#wrapper', { click: true }); ...
- ReactJS虚拟DOM效应带来的一则副作用探索
疑问 https://github.com/ruanyf/react-demos/blob/master/demo08/index.html 在如下代码中的 18 行, 需要将本类中的 方法,进行绑定 ...
- AIC与BIC
首先看几个问题 1.实现参数的稀疏有什么好处? 一个好处是可以简化模型.避免过拟合.因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数作用,会引发过拟合.并且参数少了模型的解释能力会变强. 2 ...
- 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明
通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明 错误原因是springmvc中的约束信息不对 <beans xmlns="http://w ...
- P1822 魔法指纹
一道放在分块训练中的分块打表屑题 看了神NaCly_Fish的题解学了间隔打表(话说这么屑的东西有什么学的必要吗) 内容大多摘自大佬的题解 1,答案可递推,才适合间隔打表 什么叫可递推呢?假设f[n] ...
- 推送提交(git push)
当需要同别人共享某个分支上的工作成果时,就要把它推送到一个具有写权限的远程仓库.你的本地分支并不会自动同步到远程仓库,必须要显式地推送那些你想要与别人共享的分支.这样一来,你可以使用私有分支做一些不想 ...
- insert主键返回 selectKey使用
有时候新增一条数据,知道新增成功即可,但是有时候,需要这条新增数据的主键,以便逻辑使用,再将其查询出来明显不符合要求,效率也变低了. 这时候,通过一些设置,mybatis可以将insert的数据的主键 ...
- 项目Alpha冲刺(团队)-第一天冲刺
格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(团队)-代码规范.冲刺任务与计划 团队名称:为了交项目干杯 作业目标:描述第一天冲刺的项目进展.问题困难.心得体会 ...