JSON格式用于数据传输、bean用于封装数据信息、String用于展示封装信息、json格式的内容用json工具或者之间在json.cn展示比较清晰。

一、将Sting转为Json

在开发中,经常是前端发送一串数据过来之后,是通过一个参数带着一串值过来,这一串值是String 格式的,但是里面的内容其实是json格式类型的,所以拿到值之后就要将该值转化成json格式,然后获取里面指定的key就可以拿到该值了。JSONObject jsonObject = JSON.parseObject(tt);

这样就可以将一串参数转化成json对象了,然后通过下面指定的key获取特定的值,如下面所示String imei= (String) jsonObject.get("imei");

在返回数据中,要经常返回指定的json格式,我用的是如下所示:Mapmap=new HashMap<>();

map.put("ret",1);

map.put("ret1","no");

map.put("tag1",sh.getTOpen());

map.put("video",sh.getfOpen());

map.put("video1",sh.getVOpen());

map.put("video2",sh.getViOpen());

String json=JSON.toJSONString(map);

然后return json;就可以了,不过一般这个值是要加密之后再上传给前端的。

二、fastjson的使用

1、基础

FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库。

fastJSON的使用说到底就是JSON对象、bean对象、字符串类型,三者之间的相互转化

fastjson 常用 API:public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray

public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject

public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean

public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray

public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合

public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本

public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本

public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。

解析:String→bean: parseObject(String text, Class clazz); // 把JSON文本parse为bean;

bean→String:toJSONString(Object object);//把bean转换为JSON文本

bean→JSON: toJSON(Object javaObject);//把bean转换为JSONObject或者JSONArray

JSON→String: toJSONString();

String→JSON:parse(String text);// 把JSON文本parse为JSONObject或者JSONArray

JSON格式用于数据传输、bean用于封装数据信息、String用于展示封装信息、json格式的内容用json工具或者之间在json.cn展示比较清晰,

fastJSON 引用路径:com.alibaba.fastjson.JSON;

引入依赖:

com.alibaba

fastjson

1.1.23

示例:/**

*fastJSON测试

*/

public class Test {

String userName;

String sex;

}

1.bean转字符串格式

JSON.toJSONString(Object object) 这个方法很常用,就是转成字符串格式Test test = new Test();

test.setUserName("张三");

test.setSex("男");

System.out.print(JSON.toJSONString(test));

输出结果:{"sex":"男","userName":"张三"}

2.将bean转为JSON

将bean转为JSON(JSONObject格式、JSONArray格式于此类似)Object toJSON(Object javaObject)

示例:Test test = new Test();

test.setUserName("张三");

test.setSex("男");

//将bean转换为JSON

JSONObject json = (JSONObject) JSON.toJSON(test);

System.out.print("userName:"+json.get("userName"));

输出结果:userName:张三

3.把JSON文本parse为JSONObject或者JSONArrayObject parse(String text);Test test = new Test();

test.setUserName("张三");

test.setSex("男");

String str = JSON.toJSONString(test);

JSONObject jsonObj = (JSONObject) JSON.parse(str);

System.out.print("userName:"+jsonObj.get("userName"));

输出结果:userName:张三

4.把JSON文本parse为beanTest test = new Test();

test.setUserName("张三");

test.setSex("男");

String str = JSON.toJSONString(test);

Test testTemp = JSON.parseObject(str,Test.class);

System.out.print("userName:"+testTemp.getUserName());

输出结果:userName:张三

2、序列化

序列化就是指 把JavaBean对象转成JSON格式的字符串。

com.alibaba.fastjson.JSON提供了许多方法(多态)实现序列化。

1.基本的序列化String objJson = JSON.toJSONString(Object object);

传入一个对象,将对象转成JSON字符串。

例1:将Map转成JSONMap map = new HashMap();

map.put("key1", "One");

map.put("key2", "Two");

String mapJson = JSON.toJSONString(map);

输出结果:{"key1":"One","key2":"Two"}

例2:自定义JavaBean User转成JSON。User user = new User();

user.setUserName("李四");

user.setAge(24);

String userJson = JSON.toJSONString(user);

输出结果:{"age":24,"userName":"李四"}

3、反序列化

反序列化就是把JSON格式的字符串转化为Java Bean对象。

com.alibaba.fastjson.JSON提供了许多方法(多态)实现反序列化。

指定Class信息反序列化。

例3:将例2反序列化。User user1 = JSON.parseObject(userJson, User.class);

System.out.println(user1.getUserName());

输出结果:李四

泛型的反序列化

泛型的反序列化,使用 TypeReference 传入类型信息。

例5:将例1反序列化。Map map1 = JSON.parseObject(mapJson, new TypeReference>(){});

System.out.println(map1.get("key1"));

System.out.println(map1.get("key2"));

输出结果:One

Two

JSONObject,JSONArray

JSONObject,JSONArray是JSON的两个子类。

JSONObject相当于 Map,

JSONArray相当于List。

简单方法示例:

例6:将Map转成JSONObject,然后添加元素,输出。Map map = new HashMap();

map.put("key1", "One");

map.put("key2", "Two");

JSONObject j = new JSONObject(map);

j.put("key3", "Three");

System.out.println(j.get("key1"));

System.out.println(j.get("key2"));

System.out.println(j.get("key3"));

例7:将List对象转成JSONArray,然后输出。List> list = new ArrayList>();

Map map = new HashMap();

map.put("key1", "One");

map.put("key2", "Two");

Map map2 = new HashMap();

map2.put("key1", "Three");

map2.put("key2", "Four");

list.add(map);

list.add(map2);

JSONArray j = JSONArray.parseArray(JSON.toJSONString(list));

for(int i=0; i

System.out.println(j.get(i));

}

输出结果:{"key1":"One","key2":"Two"}

{"key1":"Three","key2":"Four"}

java对象和字符串转换_java中字符串和JSON对象、Bean之间的相互转换相关推荐

  1. java解析json数组对象_JAVA中快速解析JSON对象里包含的JSON数组

    例如现在有这样一个Json String Value =  {"data":[{"school_name":"西北农林科技大学"," ...

  2. java 字符串总结_Java中字符串(String)总结

    先说说JDK API: JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口,这些功能以类的形式封装). JDK API包含的 ...

  3. java 字符串用法_java中字符串的用法

    1.String中的每个字符都是一个16位的Unicode字符,用Unicode很容易表达丰富的国际化字符集,比如很好的中文支持.甚至Java的标识符都可以用汉字,但是没人会用吧(只在一本清华的< ...

  4. java中字符串函数_JAVA中字符串函数subString的用法小结

    string str;str=str.substring(int beginindex);截取掉str从首字母起长度为beginindex的字符串,将剩余字符串赋值给str: str=str.subs ...

  5. java阿拉伯转大写_java 中大写数字与阿拉伯数之间的相互转换 | 学步园

    public class CNNumberFormat { private static final char []cnNumbers={'零', '壹', '贰', '叁', '肆', '伍','陆 ...

  6. java 集合存储空字符窜_java中字符串对象和集合的判空

    一.判断字符串是否为空 首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.util包下 ...

  7. java字符串字节_Java中字符串与byte数组之间的相互转换

    前言 Java与其他语言编写的程序进行tcp/ip socket通讯时,通讯内容一般都转换成byte数组型,java在字符与数组转换也是非常方便的.下面跟我一起来了解一下字符串与byte之间转换的原理 ...

  8. java 字符 几个字节_java中字符串占几个字节

    首先,char为Java的基本类型,基本类型所占的字节数是固定的,如int占4字节,double占8字节,这可以使得Java在不同的平台上所占类型固定,很好地保证了Java的可移植性.因此,Java中 ...

  9. java arraylist与数组转换_java中String,数组,ArrayList三者之间的转换

    免费资源网 - https://freexyz.cn/ ArrayList转为String和数组 造一个元素为Integer的ArrayList 为list_int 造一个元素为String 的 Ar ...

最新文章

  1. 1600802002
  2. declare-styleable:自定义控件的属性
  3. 【javascript】函数调用的对象和方法
  4. c语言计算机二级资料,2016年计算机二级C语言复习资料汇总
  5. 分库与分表设计-垂直切分
  6. java如何转成jar包,修改及反编译可运行Jar包实现过程详解
  7. 使用静态基类方案让 ASP.NET Core 实现遵循 HATEOAS Restful Web API
  8. hibernate中PO对象的三种状态分析以及session中的一些方法的区别
  9. OpenShift ocp packages
  10. mysql in 有序_mysql中的in排序 mysql按in中顺序来排序
  11. 关于个人博客转移的那些事
  12. Android仿人人客户端(v5.7.1)——项目框架新做的调整描述(项目中基类java源码)...
  13. 通过jdt解析spring mvc中url-类-方法的对应关系
  14. 数据库基础笔试题(附带答案)
  15. 应届生简历如何写实习经历?
  16. 一台计算机连接两个投影,台式机怎么同时连接两个投影仪
  17. MPC-HC 播放器设置
  18. 魔兽世界开服教程——魔兽世界服务器架设全攻略---战网+Ladder排行版
  19. 分享免端口访问群晖的方法,可以顶级域名
  20. 四种做动态数据可视化的方法

热门文章

  1. 财务自由,一年赚500万,依然做社畜是什么感觉?
  2. 【Python数据挖掘课程笔记】八.关联规则挖掘及Apriori实现购物推荐
  3. ROS推荐链接:UNIX/LINUX专为初学者的教程和命令 http://www.ee.surrey.ac.uk/Teaching/Unix/
  4. 通过Windows远程桌面连接将远程文件传输至本地
  5. 小鹏P7将上线新一代AI语音:无限接近人类、带情感、会调侃
  6. 外媒:新iPhone系列配备更大无线充电线圈 反向无线充即将到来
  7. 特斯拉:召回不涉及国产车型 也与“刹车失灵”无关
  8. 华为nova 8 Pro王者荣耀定制版曝光:内置小鲁班定制主题 电池盖镭雕小鲁班
  9. 特斯拉陶琳:全新Model 3标准续航升级版新增前排双层玻璃、电尾等功能
  10. ARM联合创始人:若被英伟达收购 将是一场灾难