java用JSONObject生成json
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的更多相关文章
- 在JAVA中使用JSONObject生成json
JSON是一种轻量级的数据交换格式,在现在的web开发中,是非常常见的.在没有方便的工具之前,我们或许会使用拼字符串的形式来生成json数组,今天我们使用一个json-lib.jar包来为我们实现生成 ...
- Java Servlet生成JSON格式数据并用jQuery显示
1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException;import java.io.PrintWriter;import java.uti ...
- [转]java中JSONObject与JSONArray的使用详细说明及有关JSON的工具类
JSONObject与JSONArray的使用 一.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: 1.commons-lang.jar 2.c ...
- java生成Json工具之JsonSimple的使用
json-simple是由是Google开发的Java JSON解析框架,基于Apache协议.目前版本为1.1 项目主页:https://code.google.com/p/json-simple/ ...
- java对象转json应clone,避免生成json串有问题
今天因为一个java对象转json,搞了我一下午,在些记录一下: 是这样:我在strtuts2的action中调用services返回 Row: 26, 中国银行海鹰, 29, 东楼, 36, 1F ...
- 使用JSONObject生成和解析json
1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组,以"[]"括起来 Object 对象,类似于C中的结构体 ...
- 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 ...
- java 字符串解析为json 使用org.json包的JSONObject+JSONArray
参考: https://blog.csdn.net/xingfei_work/article/details/76572550 java中四种json解析方式 JSONObject+JSONArray ...
- 使用JSONObject类来生成json格式的数据
JSONObject类不支持javabean转json 生成json格式数据的方式有: 1.使用JSONObject原生的来生成 2.使用map构建json格式的数据 3.使用javabean来构建j ...
随机推荐
- linux命令 EOF
在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell. EOF只是一个分界符,当然也可以用abcde替 ...
- ORA-00904: "I_LEVEL": invalid identifier
问题描述 ORA-00904: "I_LEVEL": invalid identifier 标示符无效
- python3练习100题——012
今天继续,答案都通过py3测试. 原题链接:http://www.runoob.com/python/python-exercise-example12.html 题目:判断101-200之间有多少个 ...
- TWF
design seq1_b3 sta_label 0.0-1.0 0.0-1.0 1e-9 # clocks# clockID clock_name period rise_edge fall_edg ...
- WPF学习笔记四之命令
1.概念 对于程序来说,命令就是一个个任务,例如保存,复制,剪切这些操作都可以理解为一个个命令.即当我们点击一个复杂按钮时,此时就相当于发出了一个复制的命令,即告诉文本框执行一个复杂选中内容的操作,然 ...
- mybatis(六):设计模式 - 组合模式
- VS调试工具
F5--启动运行,跳到下一个断点 F10--逐步调试 F11--逐句调试 F10和F11的区别: method(); int a = 1; 当程序运行到如上面的method方法时,按F10会直接跳到下 ...
- python+selenium:浏览器webdriver操作(1)--基本对象定位
1.简单对象的定位-----自动化测试的核心 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证 ...
- 百炼OJ - 1002 - 方便记忆的电话号码
题目链接 思路 开个一千万的数组计数,最后遍历即可. #include<stdio.h> #include<string.h> #include<algorithm> ...
- zk zkCli shell命令
查看zk 注册服务:在zk bin 下执行 sh zkCli.sh 计入客户端shell命令行 查看zk注册服务:ls / 或者递归查看 ls -s / 列出的为注册服务. 查询服务 ...