JSON与XML两者目前在数据交互方面都有很高的使用率,随着现在SOA的兴起,异构系统的整合地位相应提高,本篇文章主要介绍JSON与JAVA对象之间的相互转换。一、对普通类型的JSON模式的转换一般JSON为最普通的String类型组成,没有其它Data或Object等这种特殊类形,具体例子如下:JSON:
jsonString = {"name":"jack","sex":"men","age":23};JAVA BEAN:
public class Person{
private String name;
private String sex;
private Integer age;...omit get or set method...
}现在如果我们想把上面的JSON格式转为Java bean类,常用方法为:jsonObject = JSONObject.fromObject(jsonString);
Object results = JSONObject.toBean(jsonObject, Person.class);这样返回来的数据就为Person类型的实例,在JSONObject.toBean();的方法签名中第一个参数为jsonObject对象,第二个参数为要转换后的JAVA BEAN的class类。二、对有Date或List类型的转换JSON:
jsonString = {"name":"jack","sex":"women","birthday":"2010-06-12","address":[{"officeAttr":"NEWS RORK","HomeAttr":"beijing"},{"officeAttr":"taiyuan","HomeAttr":"hongkong"}]};JAVA BEAN:public class Person{
private String name;
private String sex;
private Date birthday;private List<Address> address;...omit get or set method...
}public class Address{
private String officeAttr;
private String homeAttr;...omit get or set method...
}现在如果我们想把上面的JSON格式转为Java bean类,常用方法为:JSONUtils.getMorpherRegistry().registerMorpher(new JsonDateValueProcessor(new String[] { "yyyy-MM-dd","yyyy-MM-dd HH:mm:ss" }));Map<String,Class> map = new HashMap<String,Class>();
map.put("address",Address.class);  //map中的key值为json中list的key值,value为Address的class类对象
jsonObject = JSONObject.fromObject(jsonString);
Object results = JSONObject.toBean(jsonObject, Person.class, map);public class JsonDateValueProcessor implements JsonValueProcessor {private String format = "yyyy-MM-dd HH:mm:ss";public JsonDateValueProcessor() {}public JsonDateValueProcessor(String format) {
this.format = format;
}public Object processArrayValue(Object value, JsonConfig jsonConfig) {
return process(value, jsonConfig);
}public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
return process(value, jsonConfig);
}private Object process( Object value, JsonConfig jsonConfig ) {
if (value instanceof Date) {
String str = new SimpleDateFormat(format).format((Date) value);
return str;
}
return value == null ? null : value.toString();
}public String getFormat() {
return format;
}public void setFormat(String format) {
this.format = format;
}}

转载于:https://www.cnblogs.com/cmzcheng/p/3668631.html

JSON 与JAVA对象之间的转换(转)相关推荐

  1. JSON字符串和对象之间的转换

    使用jackSON来实现JSON字符串和对象之间的转换 引入maven <!--jackson--><dependency><groupId>com.fasterx ...

  2. JSON与Java对象的互相转换

    JSON与Java对象的互相转换 例一(单个对象进行赋值): @RequestMapping("test1.do")@ResponseBodypublic JSONObject t ...

  3. JSON数据和JAVA对象之间的转换

    方法1: 利用阿里巴巴开源的fastjson包进行JAVA对象和JSON字符串进行转换. C++中的结构体在JAVA中用对象表示,目录结构如下: Peron类内容如下,对应C++中的Person结构体 ...

  4. 使用fastjson工具类json字符串和对象之间的转换

    文章目录 一.引入依赖 二.创建user实体类 三.测试 一.引入依赖 <!--字符串和对象操作工具类 Start--><dependency><groupId>c ...

  5. JSON字符串与Java对象的互相转换(详解)

    <第四章-核心类库> 第8节 XML与Json 1. Json 1.1 简介 JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式 ...

  6. java 对象之间转换_浅谈java对象之间相互转化的多种方式

    浅谈java对象之间相互转化的多种方式,对象,属性,参数,赋值,不支持 浅谈java对象之间相互转化的多种方式 易采站长站,站长之家为您整理了浅谈java对象之间相互转化的多种方式的相关内容. 第一种 ...

  7. C#中JSON和对象之间互相转换功能示例

    本文实例讲述了C#实现JSON和对象之间互相转换功能.分享给大家供大家参考,具体如下: 1.首先是声明用户信息对象,DataContract修饰类,表示可以被解析成JSON,DataMember修饰属 ...

  8. Python:json数据与Python对象之间的转换

    json数据与Python对象之间的转换 1.前面介绍了在Python中如何处理json数据,主要使用了以下几个方法     ⑴dumps():将Python对象转换为JSON格式的字符串     ⑵ ...

  9. 【Java】json与java对象转换,获得数据库自增主键,保存返回数据 (个人梳理)

    [Java]json与java对象转换,获得数据库自增主键,保存返回数据 (个人梳理) 模拟请求API 获得json数据,将json转换为java对象,再将java对象转换为list集合,再将list ...

  10. c#谷歌 json转对象_利用Google Gson实现JSON字符串和对象之间相互转换

    最近一个项目需要用到JSON,需要在JSON字符串和对象之间相互转换,在网上找了些资料,发现google的Gson还是比较不错的. 废话不说,下面是简单的例子: 先上源码:下载(包含jar包) Per ...

最新文章

  1. 读书笔记:《搞定3--平衡工作和生活的艺术》
  2. E431 笔记本电池问题 0190 Critical low-battery error 解决办法
  3. hbase shell 查看列名_hbase shell 常用命令
  4. 通过WordPress内置函数批量添加文章
  5. 由excel导出引起的cpu 100% 和gc 的问题
  6. linux c代码出现段错误,Linux下段错误(C语言)
  7. mysql设置输出格式_rsyslog 配置mysql输出格式
  8. 中国电子银行网-互联网金融第一大网站
  9. 匿名对象和类名为数据类型(java)
  10. 时间轮python_时间轮定时器的实现(参考Linux源码)
  11. 11款常用的安全测试工具
  12. 移动平均线rolling()与加权移动平均线ewm()
  13. 过滤百度广告+搜索热点+adblock规则快速入门
  14. 记录:如何解决Ubuntu20.04无法联网问题【亲测有效】
  15. OpenCV-颜色通道的分离、合并
  16. 相机闪光灯(camera flash)
  17. java怎么实现华为云文字识别,华为云语音识别:一句话识别API调用
  18. 电容参数X5R,X7R,Y5V,COG
  19. C#下使用第三方开源控件读取Excel文件的内容
  20. 从零开始学python的第16天

热门文章

  1. Synchronized的底层实现原理(看这篇就够了)
  2. Python使用datetime来判断近七天
  3. spring异常处理器
  4. CoreImage的使用及常见滤镜工具(一)
  5. android eclipse下载
  6. NHibernate版本不一致问题
  7. Ancient Knight(打造Windows Mobile平台最专业的游戏修改器)
  8. 另类的JS常见函数应用
  9. Xcode 12 to build a single binary with both 32-bit and 64-bit support
  10. 公司居然使用监听设备,大家来讨论下IT公司应该怎样管理