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

原文: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. nginx配置http访问自动跳转到https

    1.按照如下格式修改nginx.conf 配置文件,80端口会自动转给443端口,这样就强制使用SSL证书加密了.访问http的时候会自动跳转到https上面 server { listen ; se ...

  2. js统计文本框剩余可输入字数

    js统计文本框剩余可输入字数 <html><head runat="server"> <title></title> <scr ...

  3. 11、TopN实战

    1.Java版本: 1.1.取前3 package sparkcore.java; import java.util.List; import org.apache.spark.SparkConf; ...

  4. SSE图像算法优化系列八:自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。

    Vibrance这个单词搜索翻译一般振动,抖动或者是响亮.活力,但是官方的词汇里还从来未出现过自然饱和度这个词,也不知道当时的Adobe中文翻译人员怎么会这样处理.但是我们看看PS对这个功能的解释: ...

  5. [Python设计模式] 第28章 男人和女人——访问者模式

    github地址:https://github.com/cheesezh/python_design_patterns 题目 用程序模拟以下不同情况: 男人成功时,背后多半有一个伟大的女人: 女人成功 ...

  6. EAS开发报错 :数据库表 或 视图 不存在

      一:原因分析     建模之后,发布数据时未能及时在数据库创建相应的表格或视图.   二:解决办法     建模视图下——右键模型——更新数据库.   三:名称字段.描述字段在数据库里的存储格式 ...

  7. ubuntu系统默认源更改为阿里源

    from:http://blog.csdn.net/minicto/article/details/62240020 ubuntu系统默认源更改为阿里源 ubuntu默认使用的国外的源,在更新的时候会 ...

  8. class<T>和 class<?>类型

    ? 表示不确定的java类型. T 表示java类型 Class<T>在实例化的时候,T要替换成具体类Class<?>它是个通配泛型,?可以代表任何类型<? extend ...

  9. Python的虚拟机安装已经如何配置Scrapy for Mac

    时间:2018年2月21日 因为时间问题,以下笔记就粗略记录.仅作为个人笔记为用 安装virtualenv和virtualenvwrapper 如何安装的细节下面这篇也有介绍,包括如何使用切换虚拟机也 ...

  10. MySQL执行计划解析

    前言 在实际数据库项目开发中,由于我们不知道实际查询时数据库里发生了什么,也不知道数据库是如何扫描表.如何使用索引的,因此,我们能感知到的就只有SQL语句的执行时间.尤其在数据规模比较大的场景下,如何 ...