Json在前后台传输中,是使用最多的一种数据类型。json生成的方法有很多,自己只是很皮毛的知道点,用的时候,难免会蒙。现在整理下

第一种:

import net.sf.json.JSONArray;
   import net.sf.json.JSONObject;

1、bean转为Json

User u =  User();
u.setAge(22);
u.setUsername("hzucmj");
u.setEnabled(); JSONObject json = JSONObject.fromObject(u);
System.out.println(json.toString());

2、List转为Json

User u1 =  User();
u1.setAge(22);
u1.setUsername("hzucmj");
u1.setEnabled(); User u2 = User();
u2.setAge(20);
u2.setUsername("ctf");
u2.setEnabled(); List<Object> list = ArrayList<Object>();
list.add(u1);
list.add(u2); JSONArray json = JSONArray.fromObject(list);
System.out.println(json.toString());

3、Map转为Json

HashMap<String, Comparable> map =  HashMap<String, Comparable>();
map.put("name", "hzucmj");
map.put("age", 22);
JSONObject json = JSONObject.fromObject(map);
System.out.println(json.toString());

4.创建json对象

JSONObject jsonObj = new JSONObject();
jsonObj.put("id",1);
jsonObj.put("name","张勇");
jsonObj.put("sex","男");
jsonObj.put("age",24);
jsonObj.put("hobby",new String[]{"上网","游戏","跑步","音乐"});//这里就是一个String数组:String hobby[];(hobby:爱好)
System.out.println("我创建的json:"+jsonObj.toString());

5.json对象转java对象

Student stud = (Student) JSONObject.toBean(jsonObj,Student.class);
System.out.println(stud.getName());

6.创建json对象并添加属性

       JSONObject json1 = new JSONObject();
json1.put("Int_att",25);//添加int型属性
json1.put("String_att","str");//添加string型属性
json1.put("Double_att",12.25);//添加double型属性
json1.put("Boolean_att",true);//添加boolean型属性 JSONObject json = new JSONObject();
json.put("年龄",25);//添加int型属性
json.put("名字","段鑫杰");//添加string型属性 //添加JSONObject型属性
JSONObject json2 = new JSONObject();
json2.put("id", 1);
json2.put("name", "tom");
json1.put("JSONObject_att",json);
//添加JSONArray型属性
JSONArray jsonArray = new JSONArray();
jsonArray.add("array0");
jsonArray.add("array1");
jsonArray.add("array2");
jsonArray.add("array3");
json1.put("JSONArray_att", jsonArray); System.out.println(json1.toString());
System.out.println("获取名字:"+json1.getJSONObject("JSONObject_att").get("名字"));
System.out.println("JSONArray_att:"+json1.getJSONArray("JSONArray_att"));

第二种:

import com.alibaba.fastjson.JSONArray;
   import com.alibaba.fastjson.JSONObject;

        String jsonArray = JSONArray.toJSONString(list);
System.out.println("List转换json:"+jsonArray);

直接调用 JSONArray.toJSONString(list)就行,感觉参数基本上都适合。帅吧,毕竟是阿里巴巴嘛。

总结:两者都是基于JDK的轻量级的。菜鸟一枚,多谢大家指点!

 

java用JSONObject生成json的更多相关文章

  1. 在JAVA中使用JSONObject生成json

    JSON是一种轻量级的数据交换格式,在现在的web开发中,是非常常见的.在没有方便的工具之前,我们或许会使用拼字符串的形式来生成json数组,今天我们使用一个json-lib.jar包来为我们实现生成 ...

  2. Java Servlet生成JSON格式数据并用jQuery显示

    1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException;import java.io.PrintWriter;import java.uti ...

  3. [转]java中JSONObject与JSONArray的使用详细说明及有关JSON的工具类

    JSONObject与JSONArray的使用 一.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: 1.commons-lang.jar 2.c ...

  4. java生成Json工具之JsonSimple的使用

    json-simple是由是Google开发的Java JSON解析框架,基于Apache协议.目前版本为1.1 项目主页:https://code.google.com/p/json-simple/ ...

  5. java对象转json应clone,避免生成json串有问题

    今天因为一个java对象转json,搞了我一下午,在些记录一下: 是这样:我在strtuts2的action中调用services返回 Row: 26, 中国银行海鹰, 29, 东楼, 36, 1F ...

  6. 使用JSONObject生成和解析json

    1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组,以"[]"括起来 Object 对象,类似于C中的结构体 ...

  7. Sqoop异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject

    18/12/07 01:09:03 INFO mapreduce.ImportJobBase: Beginning import of staffException in thread "m ...

  8. java 字符串解析为json 使用org.json包的JSONObject+JSONArray

    参考: https://blog.csdn.net/xingfei_work/article/details/76572550 java中四种json解析方式 JSONObject+JSONArray ...

  9. 使用JSONObject类来生成json格式的数据

    JSONObject类不支持javabean转json 生成json格式数据的方式有: 1.使用JSONObject原生的来生成 2.使用map构建json格式的数据 3.使用javabean来构建j ...

随机推荐

  1. 训练20191007 2017-2018 ACM-ICPC Latin American Regional Programming Contest

    2017-2018 ACM-ICPC Latin American Regional Programming Contest 试题地址:http://codeforces.com/gym/101889 ...

  2. laydate 限制结束日期不能大于起始日期

    时间选择器在选择的时候,同时配置了另一个时间选择器内的参数 <div class="form-group"> <label for="exampleIn ...

  3. sql 单表操作

    前戏 --创建表 create table xxx( id int unsigned not null auto_increment primary key, name varchar(20) not ...

  4. 番外:如何克隆可刷新的PDB(Refreshable PDB)

    基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆创建 对应路径:属于克隆.PDB类型为:Refreshable 相关系列请参考<Oracle创建PDB列表文章> 注 ...

  5. c数据结构 -- 线性表之 复杂的链式存储结构

    复杂的链式存储结构 循环链表 定义:是一种头尾相接的链表(即表中最后一个结点的指针域指向头结点,整个链表形成一个环) 优点:从表中任一节点出发均可找到表中其他结点 注意:涉及遍历操作时,终止条件是判断 ...

  6. 【C语言】指针函数例子

    #include<stdio.h> char* getword(char); char* getword(char c) { switch (c) { case'A':return&quo ...

  7. Hadoop2.0之YARN组件

    官方文档:https://hadoop.apache.org/docs/stable/,目前官方已经是3.x,但yarn机制没有太大变化 一.简介 在Hadoop1.0中,没有yarn,所有的任务调度 ...

  8. Vue-移动端开发全家桶

    内容:node.js,vue-cli,vuex,axios,postcss-pxtorem,lib-flexible,vant ,babel-plugin-import 1.安装脚手架工具: npm ...

  9. Js将字符串转换成对象或数组en

    举个例子 var test='{ colkey: "col", colsinfo: "NameList" }' a.将文本转换成对象 var test='{ c ...

  10. 什么是JWT令牌认证?

    当下,JWT(JSON Web Token)令牌认证已经变得越来越流行.本文主要介绍JWT令牌认证与传统的Session会话认证机制的区别. 为什么需要认证? HTTP是一种无状态协议,那就意味着当前 ...