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 的要求以 ...
随机推荐
- Unity的Input输入
Unity中的输入管理器由Input类进行操控.官方文档地址:https://docs.unity3d.com/ScriptReference/Input.html 中文翻译的话可以在这里:http: ...
- 自动化web前端测试,自动登录网站.目前发现最靠谱的方法是imacros
imacros免费版 登录宏代码的示例: //首先登出URL GOTO=http://yoursite/logout.html//打开登录页面URL GOTO=http://yoursite/logi ...
- 【ASP.NET Core】EF Core - “影子属性”
有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. 老周觉得,视频直播可能会好一些,虽然我的水平一般,不过直播时,老周 ...
- String类源码解析
1. String是使用char[]数组来存储的,并且String值在创建之后就不可以改变了.char[]数组的定义为: /** The value is used for character sto ...
- 对Faster R-CNN的理解(3)
2.2 边框回归 边框回归使用下面的几个公式: xywh是预测值,带a的是anchor的xywh,带*的是GT Box的xywh,可以看作是anchor经过一定的变换回归到附近的GT Box.
- Linux 端口转发一则
目前已知的,公司的网络只有 80.8008(后来又给关了 - -).443 端口的 TCP 可以出去,其它已知的所有端口都被封锁.所以,我的***工具就歇菜了. 最后尝试,通过配置端口转发,将ss主机 ...
- 【转】关于免费SSL证书的那些事儿
根据 Let’s Encrypt CA 的统计,截至 2017 年 11 月,Firefox 加载的网页中启用 HTTPS 的比例占 67%,比去年底的 45% 有巨大提升.浏览器开发商如 Mozil ...
- dubbo配置多个注册中心
用法: <dubbo:registry address="zookeeper://10.0.1.131:2181?backup=10.0.1.132:2181,10.0.1.133:2 ...
- 【Python】 解析Python中的运算符
Python中的运算符相比较于传统的C/C++差别不是很大,主要是一些个别的运算符上的差别.包括:算术.比较.赋值.位.逻辑.成员.身份等.它们的优先级: 符号 说明 ** 指数(最高优先级) ~,+ ...
- JDBC告警系列(一)The server time zone value 'ÖÐ' is unrecognized or represents more than one time zone.
一.现象 java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents ...