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. CSS的长度单位

    对于css的长度单位真的有必要知道一下.那么css长度单位有哪些呢? 分成两大类: 1.绝对单位:不会因为其他元素的尺寸变化而变化.坚持自我. 2.相对单位:没有一个确定的值,而是由其他元素的尺寸影响 ...

  2. 后台 - java 数组

    声明 int[] arr = new int[5]; 在数组中插入数据 备注:i是插入的位置,i+1是实际位置 public static int[] insert(int[] arr,int i,i ...

  3. vs2019 scanf 解决 C4996问题

    1. 首先选择项目 2. 然后选择最下面那行的 工程属性, 其后于此处 3. 添加上 :_CRT_SECURE_NO_WARNINGS 最后保存,使用 scanf 读取即无报错了

  4. Myeclipse的一些快捷键整理(转)

    1. [ALT+/]    此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下[ALT+/]快捷键带来的好处吧.    2. ...

  5. 1015 Reversible Primes

    1. 题目 2. 抽象建模 无 3. 方法 无 4. 注意点 素数判断(1不是素数) 数值的倒转 5. 代码 #include<stdio.h> #include<math.h> ...

  6. 12.动态内存和智能指针、 直接管理内存、shared_ptr和new结合使用

    12.动态内存和智能指针 1.智能指针分为两种shared_ptr和unique_ptr,后者独占所指向的对象.智能指针也是模板,使用时要用尖括号指明指向的类型.类似emplace成员,make_sh ...

  7. centos7 sshpass 用法详解

    可以参考文章:https://www.cnblogs.com/kaishirenshi/p/7921308.html 安装方式直接通过yum 安装 yum -y install sshpass 常用的 ...

  8. 解决报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshaketimeout

    报错: [root@localhost /]# sudo docker pull ubuntuError response from daemon: Get https://registry-1.do ...

  9. C#中的@和$ 占位符

    c#中@的三种用法: 1.忽略转移字符 string str = "C:\\windows\\system32"; string str = @"C:\windows\s ...

  10. 每天进步一点点------Allegro 建立封装的一般步骤

    在制作封装之前,先确定你需要的焊盘,如果库中没有,那就要自己画了,(我就是自己画的) 制作二极管1N5822 SMD,实际尺寸:480milX520mil 一.添加元件焊盘 1 启动Allegro P ...