创建JSONArray的常用四种方法
创建JSONArray的常用四种方法
1.从头或者从零开始,创建一个JSONArray(Creating a JSONArray from scratch)
实例1:
Java代码
JSONArray jsonArray = new JSONArray().element("JSON").element("1").element("2.0").element("true");
assertEquals("JSON", jsonArray.getString(0));
assertEquals(1, jsonArray.getInt(1));
assertEquals(2.0d, jsonArray.getDouble(2), 0d);
assertTrue(jsonArray.getBoolean(3));
3.使用一个Collection来创建一个JSONArray(Creating a JSONArray from a Collection)
实例1:
Java代码
List list = new ArrayList();
list.add( "JSON" );
list.add( "1" );
list.add( "2.0" );
list.add( "true" );
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( list ); assertEquals( "JSON", jsonArray.getString(0) );
assertEquals( 1, jsonArray.getInt(1) );
assertEquals( 2.0d, jsonArray.getDouble(2), 0d );
assertTrue( jsonArray.getBoolean(3) );
4.使用一个Array来创建一个JSONArray(Creating a JSONArray from an array)
实例1:
Java代码
Object[] array = new Object[] { "JSON", 1, 2.0, true };
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(array); assertEquals("JSON", jsonArray.getString(0));
assertEquals(1, jsonArray.getInt(1));
assertEquals(2.0d, jsonArray.getDouble(2), 0d);
assertTrue(jsonArray.getBoolean(3));
//实例2:
Object[] array = new Object[] { "JSON", 1, 2.0, true };
JSONArray jsonArray = JSONArray.fromObject(array);
assertEquals("JSON", jsonArray.getString(0));
assertEquals(1, jsonArray.getInt(1));
assertEquals(2.0d, jsonArray.getDouble(2), 0d);
assertTrue(jsonArray.getBoolean(3));
由此可见,无论要转换的源是哪种类型,都可以使用(JSONArray) JSONSerializer.toJSON()或JSONArray.fromObject()来转换;
常用的三种扩展功能
1.使用一个JSON格式化字符串来创建一个JSONFunction(JavaScript functions)
实例:
Java代码
String str = "{func: function( param ){ doSomethingWithParam(param); }}";
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str); JSONFunction func = (JSONFunction) jsonObject.get("func"); ArrayAssertions.assertEquals(new String[] { "param" }, func.getParams());
assertEquals("doSomethingWithParam(param);", func.getText());
注:函数的写法要注意function(){},参数param是可选的!
2.排除一个JSON格式化字符串的某些属性(Exclude properties)
实例:
Java代码
String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[] { "double", "boolean" }); JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str, jsonConfig);
assertEquals("JSON", jsonObject.getString("string"));
assertEquals(1, jsonObject.getInt("integer"));
assertFalse(jsonObject.has("double"));
assertFalse(jsonObject.has("boolean"));
3.排除一个JSON格式化字符串的某些属性,使用过滤器(Exclude properties (with filters)
实例:
Java代码
String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object source, String name, Object value) {
if ("double".equals(name) || "boolean".equals(name))
{ return true; }
return false; } });
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str, jsonConfig);
assertEquals("JSON", jsonObject.getString("string"));
assertEquals(1, jsonObject.getInt("integer"));
assertFalse(jsonObject.has("double"));
assertFalse(jsonObject.has("boolean"));
JSONObject-Java常用的四种用法
1.JSONObject to DynaBean
Java代码
String json = "{name=\"json\",bool:true,int:1,double:2.2}"; JSONObject jsonObject = JSONObject.fromObject(json); //抽象的写法:DynaBean bean = (DynaBean) JSONSerializer.toJava( jsonObject ); Object bean = JSONObject.toBean(jsonObject);
//Object bean1 = JSONSerializer.toJava(jsonObject);
assertEquals(jsonObject.get("name"), PropertyUtils.getProperty(bean, "name"));
assertEquals(jsonObject.get("bool"), PropertyUtils.getProperty(bean, "bool"));
assertEquals(jsonObject.get("int"), PropertyUtils.getProperty(bean, "int"));
assertEquals(jsonObject.get("double"), PropertyUtils.getProperty(bean, "double"));
2.JSONObject to JavaBean
Java代码
String json = "{name:\"zhangsan\",age:25,hight:1.72,sex:true}"; JSONObject jsonObject = JSONObject.fromObject(json);
UserBean bean = (UserBean) JSONObject.toBean(jsonObject, UserBean.class);
System.out.println(jsonObject);
3.JSONArray to List
Java代码
String json = "[\"first\",\"second\"]";
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json);
List output = (List) JSONSerializer.toJava(jsonArray);
4.JSONArray to array
Java代码
String json = "[\"first\",\"second\"]";
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json); JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY);
Object[] output = (Object[]) JSONSerializer.toJava(jsonArray, jsonConfig);
Object[] expected = new Object[] { "first", "second" }; ArrayAssertions.assertEquals(expected, output);
理论上,这样就可以了,但时,有异常Caused by: java.lang.NoSuchMethodException: com.json.Json$UserBean.<init>()
2.使用一个JSON格式化字符串来创建一个JSONArray(Creating a JSONArray from a JSON formatted string)
实例1:
Java代码
String str = "['JSON', 1, 2.0, true]"; //注意该字符串的格式"[ , ]" JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( str ); assertEquals( "JSON", jsonArray.getString(0) );
assertEquals( 1, jsonArray.getInt(1) );
assertEquals( 2.0d, jsonArray.getDouble(2), 0d );
assertTrue( jsonArray.getBoolean(3) );
Java代码
List<String> list = new ArryList<String>(); list.add("a"); list.add("b"); Map<String,List<String>> map = new HashMap<String,List<String>>(); map.put("list",list); MessageUtils.outputJSONResult(JSONObject.fromObject(map).toString(), response); public class MessageUtils { public static void outputJSONResult(String result, HttpServletResponse response) { try { response.setHeader("ContentType", "text/json"); response.setCharacterEncoding("utf-8"); PrintWriter pw = response.getWriter(); pw.write(result); pw.flush(); pw.close(); } catch (IOException e) { e.printStackTrace(); } }
创建JSONArray的常用四种方法相关推荐
- Keras创建ANN模型的四种方法
Keras创建ANN模型的四种方法 1.将参数传递给tf.keras.Sequential 2.用tf.keras.Sequential的`.add`方法 3.使用Keras函数式API 4.子类化t ...
- D3D描绘四边形的四种方法之DrawPrimitive、DrawIndexedPrimitive、DrawPrimitiveUP、DrawIndexedPrimitiveUP
创建描绘四边形的四种方法:(程序片段,只是简要介绍不同之处,不对之处,恳请指正) 第一种:最常用的一种: 使用D3D坐标(D3DFVF_XYZ ),通过设置矩阵,使用VB, 4个点.调用DrawPri ...
- linux如何创建共享内存,linux实现共享内存同步的四种方法
https://blog.csdn.net/sunxiaopengsun/article/details/79869115 本文主要对实现共享内存同步的四种方法进行了介绍. 共享内存是一种最为高效的进 ...
- 清除浮动最常用的四种方法
1.为什么要清除浮动 开发过程中,浮动是需要掌握的一个技能,页面布局当中,在无法确定子元素的高度(height)时,我们无法给父级标签一个固定的高度(height),我们想要的是,由子元素的高度去控制 ...
- Java创建并执行线程的四种方法
Java创建并执行线程的四种方法 java里面创建线程有四种方式: 无返回: 实现Runnable接口,重写run(); 继承Thread类,重写run(); 有返回: 实现Callable接口,重写 ...
- java中创建数组的四种方法
详细方法见如下四部分代码块 方法一: 详情见注释 //创建数组的第一种方法int[] arr=new int[6]; //通过创建对象的方法来声明一个数组对象int intValue=arr[5]; ...
- PHP取整数函数常用的四种方法
PHP取整数函数常用的四种方法: 1.直接取整,舍弃小数,保留整数:intval(): 2.四舍五入取整:round(): 3.向上取整,有小数就加1:ceil(): 4.向下取整:floor( ...
- Hutool常用四种发起请求的方法
Hutool常用四种发起请求的方法 导入jar包,可以直接去搜索hutool官方查看最新版本和使用文档. <!-- https://mvnrepository.com/artifact/cn.h ...
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
最新文章
- Nginx如何实现支持HTTPS协议详细说明
- C# Http方式下载文件到本地类改进版
- Hadoop 核心编程之 HDFS 的文件操作
- 米家机扫拖机器人说明书_除菌扫拖一次搞定,科沃斯N8除菌扫拖机器人初体验...
- 零元学Expression Blend 4 - Chapter 25 以Text相关功能就能简单做出具有设计感的登入画面...
- 【转】一劳永获的解决textbox 只能输入数字、汉字、字母等问题
- 对tensorflow中的tensor、placeholder及feed_dict的理解
- js实现上传文件实时显示缩略图
- C Primer Plus 第四章 复习题编程练习 答案
- SSD和FTL概述:SSD主控维护FTL
- hive sql教程
- 淘宝网图片存储系统架构
- Excel:INDEX与MATCH函数
- golang快速入门[6.2]-集成开发环境-emacs详解
- Linux 吊炸天的总结
- 大数据征信进入洗牌期,区块链或成新一代征信系统底层架构
- ARP攻击-流量分析
- 股票配资系统平台源码搭建-股票配资交易软件开发
- K3工业老单单据的相关表
- Neo4j CQL-(18)IN操作符
热门文章
- 【Day 5 of Learning Python 】列表
- 中金公司:资管产品真净值化,摊余成本法还有多少空间?
- must end with the ';' delimiter.错误的解决
- 快速增加微信好友的10大技巧
- MySQL导入导出 —— mysqldump 简介及常见用法
- VMware16 安装windows_10
- TSINGSEE青犀视频与海康合作研发推流摄像机(枪机)为高空抛物提供了有效解决方案
- rsa des加密解密,与c++混合使用. c++ 篇
- java实现火车票查询_各位朋友,有人知道怎么用Java语言设计一个火车票购票系统吗?...
- 推荐:微软原版Office 2007 中文标准版光盘镜像下载 + 正版密钥