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的学习的更多相关文章

  1. JSON 教程学习进度备忘

    书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1. ______________ 知识点:1 ...

  2. Json.Net学习笔记

    http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http ...

  3. Newtonsoft.Json(Json.Net)学习

    转自原文 Newtonsoft.Json(Json.Net)学习笔记 Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库.软件下载地址: http://www.newto ...

  4. JSON的学习与使用

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  5. Android之Json的学习

    json数据包含json对象,json数组,对象是{ },数组是[ ], 数组里面还可以包含json对象,json对象之间是用逗号(,)隔开 形式如下: { "languages" ...

  6. Newtonsoft.Json(Json.Net)学习笔记

    Newtonsoft.Json 在Vs2013中就有自带的: 下面是Json序列化和反序列化的简单封装: /// <summary> /// Json帮助类 /// </summar ...

  7. JSON入门学习

    JSON是一种与开发语言无关的轻量级的数据格式(JavaScript Object Notation) 优点:易于阅读和编写,易于程序解析和生产 JSON数据格式中没有日期及时间的数据格式的.一般直接 ...

  8. json官方学习档案

    项目经常用json开发,但说实话,对json了解的一直不深入.今天看了下json的官方资料,明了很多. json官方网址:http://www.json.org/json-zh.html JSON(J ...

  9. Newtonsoft.Json(Json.Net)学习笔记-高级使用(转)

    1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称 7.动态决定属性是否序列化 8.枚举值的自定义格式化问题 9.自定义类型转换 10.全 ...

  10. Newtonsoft.Json(Json.Net)学习笔记(转)

    概述 Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库,通过Nuget获取.(查看原文) 下面是Json序列化和反序列化的简单封装: /// <summary&g ...

随机推荐

  1. NFV-based QoS provision for Software Defined Optical Access and residential networks

    文章名称:NFV-based QoS provision for Software Defined Optical Access and residential networks 发表时间:2017 ...

  2. (二) V4L2引入(含浅析UVC)

    title: V4L2引入(含浅析UVC) date: 2019/4/23 19:00:00 toc: true --- V4L2引入(含浅析UVC) 基本框架 V4L2全名是video for li ...

  3. checkbox 实现互斥选择

    // mutex 互斥 checkbox 互斥/** 互斥的原理.找到需要互斥的所有的元素.赋值 checked=false; 然后单独赋值 checked=true* */var mutexbox ...

  4. 一段充满bug的R程序,慎入 ...

    twitter的AnomalyDetection  官网效果图如下: 尝试写了下面这个R程序: get_specify_df <- function(start_ts,stop_ts,categ ...

  5. 34 springboot项目之间依赖导致bean 无法加载问题

    方式一(OK) 模块A引入模块B ,但是模块B的bean一直注入不进来 原因: A模块的Application是在com.xx.xx包下,那么势必只能扫描到这个包下的bean, B模块的Applica ...

  6. spring整合mybatis,批量扫描mapper接口出现异常

    org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component c ...

  7. 六十一、linux 编程—— 守护进程

    61.1 介绍 守护进程(daemon)是生存期长的一种进程.它们常常在系统引导装入时启动,在系统关闭时终止 守护进程也称为后台进程 所有守护进程都以超级用户(用户 ID 为0)的优先权运行. 守护进 ...

  8. P1074 靶形数独题解

    题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“靶 ...

  9. AngularJs的基本使用(一)

    AngularJS 指令 AngularJS 通过 ng-directives 扩展了 HTML,AngularJS 指令是以 ng 作为前缀的 HTML 属性. ng-app 指令定义一个 Angu ...

  10. 如何用ps简单快速扣头发丝

    好久不用PS抠图,今天接到一个小任务,换背景,以前一直用通道的办法,但用通道比较费劲,发现一个更简单的办法,就是用快速蒙版+调整边缘. 这张是原图: 1.先用快速蒙版制作选取(Q) 再按Q,退出快速蒙 ...