Java创建和解析Json数据方法(四)——json-lib包的使用
(四)json-lib包的使用
1.json-lib包与org.json包
2.解析json对象
package jsonlib;
import net.sf.json.*;
public class JsonlibTest {
public static void main(String[] args) {
// 创建一个bean
Student student = new Student();
student.setName("JTZen9");
student.setAge(21);
student.setSex("male");
// bean类转为json对象
JSONObject jsonObject = JSONObject.fromObject(student);
System.out.println(jsonObject);
// 方法一,json对象转为bean类
Student student2 = (Student) JSONObject.toBean(jsonObject, Student.class);
System.out.println(student2.getName() + " " + student2.getAge() + " " + student2.getSex());
// 方法二
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(Student.class);
Student student3 = (Student) JSONObject.toBean(jsonObject, jsonConfig);
System.out.println(student3.getName() + " " + student3.getAge() + " " + student3.getSex());
}
}
package jsonlib;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.*;
public class JsonlibTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("JTZen9");
list.add("heiheihei");
list.add("DSMGYH");
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);
List<String> list2 = (List<String>) JSONArray.toList(jsonArray);
System.out.println(list2.get(0) + " " + list2.get(1) + " " + list2.get(2));
List<Student> listStudent = new ArrayList<>();
for (int i = 0; i < 3; i++) {
Student student = new Student();
student.setName("JTZen9" + i);
student.setAge(i);
student.setSex("male");
listStudent.add(student);
}
JSONArray sJsonArray = JSONArray.fromObject(listStudent);
System.out.println(sJsonArray);
// JSONArray转换为List<student>,方法一
List<Student> sList1 = (List<Student>) JSONArray.toList(sJsonArray, Student.class);
System.out.println(sList1.get(1).getAge());
// 方法二
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(Student.class);
List<Student> sList2 = (List<Student>) JSONSerializer.toJava(sJsonArray, jsonConfig);
System.out.println(sList2.get(1).getAge());
}
}
3.jsonConfig类
package jsonlib;
import net.sf.json.*;
public class JsonlibTest {
public static void main(String[] args) {
Student student = new Student();
student.setName("JTZen9");
student.setSex("male");
student.setAge(21);
JSONObject jsonObject1 = JSONObject.fromObject(student);
System.out.println(jsonObject1); //正常输出三个字段
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{ "sex" }); //过滤要输出的字段
JSONObject jsonObject2 = JSONObject.fromObject(student, jsonConfig);
System.out.println(jsonObject2.toString());
}
}
4.结束语
json-lib包,比org.json包具有的功能要多,很多方法日后用到再记录。
Java创建和解析Json数据方法(四)——json-lib包的使用的更多相关文章
- Java创建和解析Json数据方法——org.json包的使用(转)
org.json包的使用 1.简介 工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies, ...
- Java创建和解析Json数据方法(三)——json-lib包的使用
(三)json-lib包的使用 这篇笔记主要介绍json-lib包的创建和解析json数据的方式,主要是的JSONObject.JSONArray和Java对象:beans, maps ...
- Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法
前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...
- JS解析json数据并将json字符串转化为数组的实现方法
json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...
- Jquery Ajax和getJSON获取后台普通Json数据和层级Json数据解析
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JS:字符串转成json数据,和json转成字符串方法 iframe获取父级传过来的数据
字符串转成json数据,和json转成字符串方法 //转为JSON adinfo=JSON.parse(adinfo) //转为字符串 adinfo=JSON.stringify(adinfo) 大概 ...
- 如何构建JSON数据,JSON数据的格式,JSON数据的获取
假设你是用$.getJSON();方法获取JSON数据$.getJSON(url,{"Action":"getStudent"},function(data){ ...
- HttpServletResponse 返回的json数据不是json字符串,而是json对象
今天在改一个bug 情况: 在spring boot中写了一个类Result ,用来统一封装 各个API响应结果 , 其中重写了toString()方法来返回 json字符串 . 在正常情况下,从其它 ...
- Java创建和解析Json数据方法(二)——org.json包的使用
(二)org.json包的使用 1.简介 工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookie ...
随机推荐
- 《流畅的python》读书笔记,第一章:python数据模型
这本书上来就讲了魔法方法,也叫双下方法.特殊方法,通过两个例子对让读者了解了双下方法的用法,更重要的是,让我一窥Python的语言风格和给使用者的自由度. 第一个例子:一摞Python风格的纸牌: i ...
- AreYouBusy HDU - 3535 (dp)
AreYouBusy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- UVA1589——xiangqi
开始碰到这个题时觉得太麻烦了直接跳过没做,现在放假了再次看这个题发现没有想象中那么麻烦,主要是题目理解要透彻,基本思路就是用结构体数组存下红方棋子,让黑将军每次移动一下,看移动后是否有一个红方棋子可以 ...
- src与href的区别
href: 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接. src:是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置:在请求src资源时会将其 ...
- Python动态属性和特性(二)
内置的property经常用作装饰器,但它其实是一个类.在Python中,函数和类通常可以互换,因为二者都是可调用对象,而且没有实例化的new运算符,所以调用构造方法和调用工厂函数没有区别,只要能返回 ...
- Leetcode13--->罗马数字转换为整数
该算法是将罗马数字转换为整数,思路如下:比如IXX,使用临时变量temp保存上一个已经遍历的罗马数字,比如:遍历时是从后往前遍历的:1> 刚开始时,temp = 0; 遍历当前遍历到第一个X,则 ...
- day04_05 逻辑运算符、表达式
num += 1 等价于 num = num + 1 逻辑运算符 and 全true则true 条件1 and 条件2 5>3 and 3>2 ===> true 5> ...
- EOJ Monthly 2018.3
985月赛我只喜欢ECNU.jpg A. 打工时不可能打工的 Time limit per test: 2.0 seconds Memory limit: 256 megabytes 我 Ayano ...
- poj3255 Roadblocks 次短路
Roadblocks Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10098 Accepted: 3620 Descr ...
- 九度oj 题目1366:栈的压入、弹出序列
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...