-
2019-03-19 18:23:27
案例:
//创建一个对象 BeanJpushExtra jpushExtra = new BeanJpushExtra(); jpushExtra.setShareUser("用户A"); jpushExtra.setShareDevice("设备A"); jpushExtra.setShareMsg("分享内容A"); // java 对象转 json字符串 net.sf.json.JSONObject json = new net.sf.json.JSONObject(); String jpushObjec= json.fromObject(jpushExtra).toString(); //打印出结果 System.out.println(jpushObjec);
结果:
{ "shareMsg":"分享内容A", "shareDevice":"设备A", "shareUser":"用户A" }
更多相关内容 -
json 字符串转java对象,java对象转json字符串
2017-05-25 15:35:36自己有空时用java反射写的json转化工具,有不完善之处,多包涵 -
java自定义类对象转json字符串(记录我是如何从一无所知到最后的了解)
2020-12-22 11:53:11写一个工具类,有两个方法,一个是输入类对象,输出类对象的json字符串,还有一个是输入json字符串和对象类型,输出类对象。 既然跟json有关,我开始百度了解json字符串: 百度是这样说的:JSON(JavaScript Object ... -
java对象转换为json字符串或字符串数组
2018-07-12 22:30:10主要用于将java对象转换为json对象字符串,或字符串数组。 -
java 对象与json字符串互相转换工具类
2018-09-15 20:28:35java 对象与json字符串互相转换工具类所需要的jar,java 对象与json字符串互相转换工具类 -
Java对象转JSON字符串
2019-12-15 16:59:55* @description: 对象转JSON字符串 * @author: Jeff * @date: 2019年12月15日 * @param bean */ public static void beanToJsonString ( User bean ) { String s = JSON . toJSONString ...1、在pom.xml中添加依赖包
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.46</version> </dependency>
2、创建测试类(JSONTest4.java)
package com.jeff; import com.alibaba.fastjson.JSON; import com.jeff.entity.User; public class JSONTest4 { public static void main(String[] args) { User user = new User("张三", "123456", 18); beanToJsonString(user); } /** * * @description: 对象转JSON字符串 * @author: Jeff * @date: 2019年12月15日 * @param bean */ public static void beanToJsonString(User bean) { String s = JSON.toJSONString(bean); System.out.println(s); } }
3、控制台输出结果
-
处理Java对象转Json字符串的功能
2015-05-07 10:09:09接受对象转换为JSON数据格式并且作为字符串输出,map转换json,list转换json -
JAVA对象转json字符串性能优化
2021-01-18 15:18:52最近对自己写的elasticsearch客户端框架在进行性能优化,数据插入部分使用的是JAVABean对象方式传参,框架内部使用了fastjson进行对象转json字符串的操作,尝试着使用不同方式进行对象转json字符串操作。找到了一种...最近对自己写的elasticsearch客户端框架在进行性能优化,数据插入部分使用的是JAVABean对象方式传参,框架内部使用了fastjson进行对象转json字符串的操作,尝试着使用不同方式进行对象转json字符串操作。找到了一种性能更好的方式,具体请看下面代码段:
package test; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import java.lang.reflect.Field; import java.util.List; /** * Created by memory_fu on 2021/1/7. */ public class ReflectasmTest { public static void main(String[] args) throws IllegalAccessException { Person person = new Person(); person.setAge(10); person.setId("1"); person.setName("傅浩"); person.setHobby("ball"); int sumCount = 20000000;// 循环次数 long l1 = System.currentTimeMillis(); for (int i = 0; i < sumCount; i++) { testFastJSON(person); } System.out.println("fastjson方式转换=====: " + (System.currentTimeMillis() - l1) + " ms."); long l2 = System.currentTimeMillis(); for (int i = 0; i < sumCount; i++) { testReflection(person); } System.out.println("JAVA反射方式转换=====: " + (System.currentTimeMillis() - l2) + " ms."); } /** * 方式一: * fastjson 对象转为JSON字符串 */ public static <T> void testFastJSON(T vo) throws IllegalAccessException { String string = JSON.toJSONString(vo); JSONObject jsonObject = JSON.parseObject(string); String str = jsonObject.toJSONString(); // System.out.println(str); } public static List<Field> fields = null; /** * 反射方式拿到类的field集合 */ public static <T> List<Field> init(T vo) { Class<?> aClass = vo.getClass(); fields = Lists.newArrayList(); for (Class i = aClass; i != Object.class; i = i.getSuperclass()) { Field[] declaredFields = i.getDeclaredFields(); for (Field field : declaredFields) { fields.add(field); } } return fields; } /** * 方式二: * 反射方式 对象转为JSON字符串 */ public static <T> void testReflection(T vo) throws IllegalAccessException { if (fields == null) { init(vo); } JSONObject jsonObject = new JSONObject(); for (Field field : fields) { jsonObject.put(field.getName(), field.get(vo)); } String str = jsonObject.toJSONString(); // System.out.println(str); } }
基于2000万数据进行测试结果:
fastjson方式转换=====: 19843 ms.
JAVA反射方式转换=====: 9019 ms.可以明显看出使用JAVA反射方式性能比使用fastjson要高,具体原因是因为fastjson转换内部有很多数据格式校验,而我们使用反射方式没有这些校验,所以性能提升明显。
结论: 对于业务开发过程中,要进行性能优化并且对数据内容格式已知情况下,可使用 方式二 进行定制性优化。
-
Java中Json字符串与各种对象互转
2016-05-23 08:55:26net.sf.json.JSONObject可以处理简单java对象和格式正确的json字符串互相转换。 ...可以处理复杂的java集合...1.json字符串转简单java对象 2.简单java对象转json字符串 3.json字符串转集合对象 4.集合对象转json字符串 -
Java对象转Json字符串
2016-08-27 19:40:34曾今遇到一个问题,需要将JavaBean转换为Json字符串,用fastjson可以很方便的做到。但是得到的结果是JavaBean成员变量的首字母编程了小写。经过查找资料,原来我们可以使用fastjson的@JsonField注解来自定义json中...曾今遇到一个问题,需要将Java对象转换为Json字符串,用fastjson可以很方便的做到。实现代码如下:
import com.alibaba.fastjson.JSONObject; public class Result { private String RESULT_CODE; private String RESULT_VALUE; public String getRESULT_CODE() { return RESULT_CODE; } public void setRESULT_CODE(String rESULT_CODE) { RESULT_CODE = rESULT_CODE; } public String getRESULT_VALUE() { return RESULT_VALUE; } public void setRESULT_VALUE(String rESULT_VALUE) { RESULT_VALUE = rESULT_VALUE; } public static void main(String[] args) { Result result = new Result(); result.setRESULT_CODE("0"); result.setRESULT_VALUE("OK"); String resultJson = JSONObject.toJSONString(result); System.out.println(resultJson); } }
本来以为json中的key在json字符串中就是Java对象的成员变量,根据需要就把Java对象的成员变量按照返回结果的要求格式全部写成了大写,运行以上代码,得到如下结果:
{"rESULT_CODE":"0","rESULT_VALUE":"OK"}
根据以上输出结果,将Java对象转化成了Json字符串,但是Java对象成员变量首字母变成了小写,这个就不是我想要的结果了。
后来经过查找资料,得知可以使用FastJson中@JSONField注解来解决,具体实现如下:
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; public class Result { private String RESULT_CODE; private String RESULT_VALUE; @JSONField(name = "RESULT_CODE") public String getRESULT_CODE() { return RESULT_CODE; } public void setRESULT_CODE(String rESULT_CODE) { RESULT_CODE = rESULT_CODE; } @JSONField(name = "RESULT_VALUE") public String getRESULT_VALUE() { return RESULT_VALUE; } public void setRESULT_VALUE(String rESULT_VALUE) { RESULT_VALUE = rESULT_VALUE; } public static void main(String[] args) { Result result = new Result(); result.setRESULT_CODE("0"); result.setRESULT_VALUE("OK"); String resultJson = JSONObject.toJSONString(result); System.out.println(resultJson); } }
运行以上代码,得到结果如下:
{"RESULT_CODE":"0","RESULT_VALUE":"OK"}
由以上结果得出,成员变量首字母小写的问题解决了。但是是什么原因导致的呢?
原来fastjson的key是根据Java对象里面的getter和setter方法来的,不是根据属性名的,所以会出现这个问题,你在属性的get和set方法上面写上标注
@JSONField(name = "RESULT_CODE")
就能解决了。那么,既然如此,有了注解之后是不是跟Java对象的成员变量就没关系了呢,我们把Java对象的成员变量改成小写,使用注解保持原来格式,继续测试。
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; public class Result { private String result_code; private String result_value; @JSONField(name = "RESULT_CODE") public String getResult_code() { return result_code; } public void setResult_code(String result_code) { this.result_code = result_code; } @JSONField(name = "RESULT_VALUE") public String getResult_value() { return result_value; } public void setResult_value(String result_value) { this.result_value = result_value; } public static void main(String[] args) { Result result = new Result(); result.setResult_code("0"); result.setResult_value("OK"); String resultJson = JSONObject.toJSONString(result); System.out.println(resultJson); } }
运行以上程序,得到了跟之前一样的结果:
{"RESULT_CODE":"0","RESULT_VALUE":"OK"}
根据以上 结果得出,使用了fastjson的
@JSONField
之后,就可以在不改变Java对象成员变量的前提下,自定义json的输出格式了,这样看来还是很方便的。 -
Java中JSON字符串与java对象的互换实例详解
2020-10-21 16:54:49主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 -
Java对象转Json字符串并格式化(美化)
2019-09-26 14:20:22/** * Gson对象转换为字符串并格式化<br/> * <业务逻辑><... * @return string 返回格式化后的json字符串 * @author Jihua Yi */ private String getPrettyGsonStr(Obj... -
使用fastjson:Java对象转json字符串(解决属性首字母大写无法映射问题)
2020-08-03 16:34:30这里写自定义目录标题引入依赖实体测试接口测试出现的问题及解决对象转json字符串出现的问题及解决 引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</... -
java转换json字符串_如何将Java对象转换为JSON字符串
2021-01-05 23:22:42java转换json字符串 在学习如何编写基于Java的软件时,开发人员遇到的第一个障碍就是如何将其代码与其他软件连接。 这通常是JSON的来源。虽然您可能是Java向导,但JSON是另一种动物。 无论如何,这篇博客文章解释了... -
Java中Json字符串直接转换为对象的方法(包括多层List集合)
2020-10-21 16:17:20下面小编就为大家带来一篇Java中Json字符串直接转换为对象的方法(包括多层List集合)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
将JAVA对象转换成JSON字符串 | 学步园
2021-03-06 23:21:42package ...import java.io.StringReader;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.Set;import antlr.RecognitionEx... -
Java实现Json字符串与Object对象相互转换的方式总结
2020-10-17 08:04:06主要介绍了Java实现Json字符串与Object对象相互转换的方式,结合实例形式总结分析了java基于Json-Lib、Org.Json、Jackson、Gson、FastJson五种方式转换json类型相关操作技巧,需要的朋友可以参考下 -
利用java反射将json字符串转成对象.zip
2019-10-14 17:15:19利用java反射将json字符串转成对象; -
java对象转json字符串的时候,字母大小些问题
2021-04-23 10:34:30在开过发过程中,遇到将一个实体类转换成json对象,转义后得到的字符串中,存在大小写转义错误。在测试中发现:1、字段名称都大写(AAA),不会有问题。2、字段名称都小写(aaa),不会有问题。3、字段名称首字母大写,... -
使用gson,java对象和json字符串之间相互转化
2015-05-18 10:53:29一个gson例子:java对象和json字符串之间相互转化 -
Java对象与JSON字符串互相转换
2019-09-06 14:14:50一、Java对象转为JSON字符串 二、JSON字符串转为Java对象 JSON解析器,常见的解析器:Jsonlib,Gson,fastjson,jackson介绍:Jackson 一、Java对象转为JSON字符串 1、引入需要的Jackson所需要的jar包(三个)... -
java对象与Json字符串之间的转化(fastjson)
2021-02-27 16:32:11public class test {public static void main(string[] args) {// 实现java对象与json字符串之间的转化// 1. person对象与json之间的转换//1.1 将person对象转成jsonperson p = new person(10, "张三");object obj =... -
使用json-lib将java对象转换成json字符串
2019-03-16 01:15:58NULL 博文链接:https://yxgyh.iteye.com/blog/392657 -
java转json串的几种方法
2017-11-24 23:20:25java转JSON串的几种方式: 1、将java对象转成json串 2、通过JSONObject生成json串 3、通过json字符串生成json串 代码通过阿里的fastjson包实现。 -
GSON包,JAVA对象和LIST转换成JSON字符串
2019-06-03 23:39:31创建一个 Gson对象在调用其toJson方法将JAVA对象或集合转换成json字符串 Gson gson = new Gson(); String toJson = gson.toJson(Object o); -
详解java生成json字符串的方法
2020-10-20 15:41:24本篇文章主要介绍了java生成json字符串的方法,包括map对象转换成json对象,list转换成json,json转换成list和map,有兴趣的可以了解一下。 -
如何将Java对象转换为JSON字符串
2020-06-14 23:39:24当学习如何编写基于Java的软件时,开发人员遇到的第一个... Java对象是数据和处理可用数据的过程的组合 。 对象既有状态又有行为 。 在Java中,使用关键字“ new”创建对象。 对象是从称为类的模板创建的。 ... -
java对象转json字符串报错
2018-12-26 13:41:29java对象转json字符串报错: net.sf.json.JSONException: JSON does not allow non-finite numbers at net.sf.json.util.JSONUtils.testValidity(JSONUtils.java:597) ~[json-lib-jdk15-2.4.jar:na] at ...