JSON中的JSON.parseArray()、JSON.parseObject()、JSON.tojsonString()
1、JSON.parseObject和JSON.toJSONString
JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。在前后台的传输过程中,JSON字符串是相当常用的,这里就不多介绍其功能了,直接举一下应用的小例子,帮助理解这两个方法的用法。
首先用maven引入fastjson
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.wujiang.test</groupId><artifactId>test</artifactId><version>1.0-SNAPSHOT</version><properties><fastjson_version>1.2.28</fastjson_version></properties><dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson_version}</version></dependency></dependencies>
</project>
定义一个model类,员工,有四个属性,如下所示:
ackage jsonTest;import java.util.Date;public class Staff {private String name;private Integer age;private String sex;private Date birthday;//省略getter和setter方法@Overridepublic String toString() {return "Staff{" +"name='" + name + '\'' +", age=" + age +", sex='" + sex + '\'' +", birthday=" + birthday +'}';}
}
好的,下一步,测试一下JSON.parseObject 和 JSON.toJSONString方法。这里故意在Json字符串中多了一个telephone,少了一个Staff中的birthday,看看输出的对象会有什么变化
package jsonTest;import com.alibaba.fastjson.JSON;public class jsonTest {public static void main(String[] args) {/*** json字符串转化为对象*/String jsonString = "{name:'Antony',age:'12',sex:'male',telephone:'88888'}";Staff staff = JSON.parseObject(jsonString, Staff.class);System.out.println(staff.toString());/*** 对象转化为json字符串*/String jsonStr = JSON.toJSONString(staff);System.out.println(jsonStr);}
}
输出结果
Staff{name='Antony', age=12, sex='male', birthday=null}{"age":12,"name":"Antony","sex":"male"}
//如果age是String类型,那么输出结果变为
//{"age":"12","name":"Antony","sex":"male"}
在JSON.parseObject 的时候,会去填充名称相同的属性。对于Json字符串中没有,而model类有的属性,会为null;对于model类没有,而Json字符串有的属性,不做任何处理。
至于 JSON.toJSONString 就不需要多说了,看一下就知道
至于应用场景,比方说,用户登录微信公众号的时候,调用微信官方的restful接口,得到该用户的所有信息的一个Json字符串,然后写一个类(将自己需要的信息封装成一个类)。例如下面的伪代码
String s = httpRequest.sendGet("https://api.weixin.qq.com/sns/oauth2/access_token","appid=" +appId + "&secret=" + appSecret + "&code=" + code + "&grant_type=authorization_code");UserAuthorizationReturn userAuthorizationReturn = JSON.parseObject(s,
UserAuthorizationReturn.class);
2、JSON.parseArray
这个方法的作用就是将json格式的数据转换成数组格式。
假设有Person这个类,有json类型数据
jsonStr = [{"name":"张三","age":"1"},{"name":"李四","age":"4"}]
List lists = json.parseArray(jsonStr, Person.class);
那么lists就可以接收jsonStr了
三者区别:
1、toJSONString
String str = JSON.toJSONString(Entity);
2、parseObject
Entity toObj = JSON.parseObject(str, Entity.class);
3、parseArray
String arrJson = JSON.toJSONString(entityList);List<Entity> arrList = JSON.parseArray(arrJson, Entity.class);
JSON.parseArray()
JSON中的JSON.parseArray()、JSON.parseObject()、JSON.tojsonString()相关推荐
- 取出json中的数据php,怎么从Json中取出数据放到一个新组中
如何从Json中取出数据放到一个新组中 JSON数据如下: { "CommunityModel": [ { " UUID ": "xxxxxx-xxx ...
- python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...
python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...
- python里load什么意思_【python】json中load和loads区别
相同点 dump 和 dumps 都实现了序列化 load 和 loads 都实现反序列化 变量从内存中变成可存储或传输的过程称之为序列化 序列化是将对象状态转化为可保存或可传输格式的过程. 变量内容 ...
- json 中的ensure_ascii=False
json 中的ensure_ascii=False 在使用json.dumps时要注意一个问题 >>> import json >>> print json.dum ...
- JSONX-在Java中构造和解析复杂的JSON对象
前言 博客首页:https://xiajiao.site 前往博客原文下载源码↓ 博文链接:伊地知虾饺的博客-JSONX-在Java中构造和解析复杂的JSON对象 JSONX--JSON-Xiajia ...
- JSON中的JSON.parseArray()方法、JSON.parseObject()方法和JSON.tojsonString()方法
1.JSON.JSON.parseObject和JSON.toJSONString JSON.parseObject,是将Json字符串转化为相应的对象:JSON.toJSONString则是将对象转 ...
- JSON中的JSON.parseArray()方法
JSON方法 JSON.parseObject和JSON.toJSONString JSON.parseArray 三者区别 JSON.parseObject和JSON.toJSONString JS ...
- c语言 json 请求_怎么用C语言获取JSON中的数据?
展开全部 用C语言获取JSON中的数据的方法是使用 CJSON. 以下简单介绍用CJSON的思路及32313133353236313431303231363533e78988e69d833133336 ...
- python读取路径中字符串_python实现提取str字符串/json中多级目录下的某个值
字符串多级目录取值: 比如说: 你response接收到的数据是这样的. 你现在只需要取到itemstring 这个字段下的值.其他的都不要! 思路就是:字符串是个json格式(或转为json格式), ...
最新文章
- 猫猫学iOS之小知识iOS启动动画_Launch Screen的运用
- Python 函数的可变参数、切片、迭代和列表生成式
- 常用正则表达式和shell命令列表
- 【JVM系列】一步步解析java执行内幕,java初级面试笔试题
- 小程序 php wecahtpay,PHP 微信公众号,小程序获取支付参数。微信支付
- android7.0如何自定义添加系统服务
- 传说中的Markov不过如此”
- java重载函数_JAVA函数的重载和重写
- 储量级别122b_储量级别代码是什么
- DELL PERC 系列阵列卡详解
- 阿里天池大数据竞赛——口碑商家客流量预测 A1
- 紫光同创国产FPGA学习之Fabric Configuration
- 人工智能与机器学习-梯度下降法
- SSL/TLS、对称加密和非对称加密和TLSv1.3
- Android应用开发高效工具集1---ant构建简单Android项目
- Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)
- android手机管家文档,腾讯手机管家Android 7.10上线,微信整理助手实现智能精准分类...
- 简单使用tabby? (前端)
- exp数据导出mysql_exp 如何导出表数据库
- 可自我组装、修复的机器人或梦想成真!变形金刚“汽车人”离我们越来越近?...
热门文章
- php oracle 需要libmysql.dll么_,Windows7环境下Apache+PHP+MySQL完美配置
- python淘宝cookies抢购_Python实现淘宝秒杀聚划算抢购自动提醒源码
- Linux系统中输出输入的管理
- python whl_python whl是什么文件
- java的equals方法_Java Vector equals()方法与示例
- 数组copyWithin()方法以及JavaScript中的示例
- 高质量SQL的30条建议!(后端必备)
- nodejs字符与字节之间的转换
- C# USB设备的管理(Devcon和注册表的USB操作)
- Python:通过SNMP协议获取华为交换机的ARP地址表