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()相关推荐

  1. 取出json中的数据php,怎么从Json中取出数据放到一个新组中

    如何从Json中取出数据放到一个新组中 JSON数据如下: { "CommunityModel": [ { " UUID ": "xxxxxx-xxx ...

  2. python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...

    python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...

  3. python里load什么意思_【python】json中load和loads区别

    相同点 dump 和 dumps 都实现了序列化 load 和 loads 都实现反序列化 变量从内存中变成可存储或传输的过程称之为序列化 序列化是将对象状态转化为可保存或可传输格式的过程. 变量内容 ...

  4. json 中的ensure_ascii=False

    json 中的ensure_ascii=False 在使用json.dumps时要注意一个问题 >>> import json >>> print json.dum ...

  5. JSONX-在Java中构造和解析复杂的JSON对象

    前言 博客首页:https://xiajiao.site 前往博客原文下载源码↓ 博文链接:伊地知虾饺的博客-JSONX-在Java中构造和解析复杂的JSON对象 JSONX--JSON-Xiajia ...

  6. JSON中的JSON.parseArray()方法、JSON.parseObject()方法和JSON.tojsonString()方法

    1.JSON.JSON.parseObject和JSON.toJSONString JSON.parseObject,是将Json字符串转化为相应的对象:JSON.toJSONString则是将对象转 ...

  7. JSON中的JSON.parseArray()方法

    JSON方法 JSON.parseObject和JSON.toJSONString JSON.parseArray 三者区别 JSON.parseObject和JSON.toJSONString JS ...

  8. c语言 json 请求_怎么用C语言获取JSON中的数据?

    展开全部 用C语言获取JSON中的数据的方法是使用 CJSON. 以下简单介绍用CJSON的思路及32313133353236313431303231363533e78988e69d833133336 ...

  9. python读取路径中字符串_python实现提取str字符串/json中多级目录下的某个值

    字符串多级目录取值: 比如说: 你response接收到的数据是这样的. 你现在只需要取到itemstring 这个字段下的值.其他的都不要! 思路就是:字符串是个json格式(或转为json格式), ...

最新文章

  1. 猫猫学iOS之小知识iOS启动动画_Launch Screen的运用
  2. Python 函数的可变参数、切片、迭代和列表生成式
  3. 常用正则表达式和shell命令列表
  4. 【JVM系列】一步步解析java执行内幕,java初级面试笔试题
  5. 小程序 php wecahtpay,PHP 微信公众号,小程序获取支付参数。微信支付
  6. android7.0如何自定义添加系统服务
  7. 传说中的Markov不过如此”
  8. java重载函数_JAVA函数的重载和重写
  9. 储量级别122b_储量级别代码是什么
  10. DELL PERC 系列阵列卡详解
  11. 阿里天池大数据竞赛——口碑商家客流量预测 A1
  12. 紫光同创国产FPGA学习之Fabric Configuration
  13. 人工智能与机器学习-梯度下降法
  14. SSL/TLS、对称加密和非对称加密和TLSv1.3
  15. Android应用开发高效工具集1---ant构建简单Android项目
  16. Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒)
  17. android手机管家文档,腾讯手机管家Android 7.10上线,微信整理助手实现智能精准分类...
  18. 简单使用tabby? (前端)
  19. exp数据导出mysql_exp 如何导出表数据库
  20. 可自我组装、修复的机器人或梦想成真!变形金刚“汽车人”离我们越来越近?...

热门文章

  1. php oracle 需要libmysql.dll么_,Windows7环境下Apache+PHP+MySQL完美配置
  2. python淘宝cookies抢购_Python实现淘宝秒杀聚划算抢购自动提醒源码
  3. Linux系统中输出输入的管理
  4. python whl_python whl是什么文件
  5. java的equals方法_Java Vector equals()方法与示例
  6. 数组copyWithin()方法以及JavaScript中的示例
  7. 高质量SQL的30条建议!(后端必备)
  8. nodejs字符与字节之间的转换
  9. C# USB设备的管理(Devcon和注册表的USB操作)
  10. Python:通过SNMP协议获取华为交换机的ARP地址表