精华内容
下载资源
问答
  • 2021-12-20 19:50:27

    调用方法fromJson()

    package cn.enilu.flash.utils;
    
    import cn.enilu.flash.bean.entity.system.User;
    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.databind.JavaType;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    import java.io.StringWriter;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 封装json工具类<br>
     * 通过该类减少项目中对特定的json库依赖,方便统一切换json库,目前使用jackson
     *
     * @author :enilu
     * @date :Created in 2020/5/31 21:55
     */
    public class JsonUtil {
        private static ObjectMapper objectMapper = null;
    
        private static ObjectMapper objectMapper() {
            if (objectMapper == null) {
                objectMapper = new ObjectMapper();
                //如果有特殊处理需求在下面做ObjectMapper的设置
    
            }
            return objectMapper;
        }
    
        public static String toJsonForHuman(Object obj) {
    
            try {
                return objectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(obj);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
        public static String toJson(Object obj) {
            StringWriter sw = new StringWriter();
    
            try {
                objectMapper().writeValue(sw, obj);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            return sw.toString();
        }
    
        public static String toJsonNotNull(Object obj) {
            StringWriter sw = new StringWriter();
    
            try {
                objectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
                objectMapper().writeValue(sw, obj);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            return sw.toString();
        }
    
        public static <T> T fromJson(Class<T> klass, String jsonStr) {
    
            T obj = null;
            try {
                obj = objectMapper().readValue(jsonStr, klass);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            return obj;
        }
    
        public static <T> List<T> fromJsonAsList(Class<T> klass, String jsonStr) {
    
            List<T> objList = null;
            try {
                JavaType t = objectMapper().getTypeFactory().constructParametricType(
                        List.class, klass);
                objList = objectMapper().readValue(jsonStr, t);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            return objList;
        }
    
        /**
         * 判断给定的字符串是否是json格式
         *
         * @param jsonStr
         * @return
         */
        public static boolean isJson(String jsonStr) {
            try {
                if (jsonStr.startsWith("{")) {
                    fromJson(Map.class, jsonStr);
                } else {
                    fromJsonAsList(Map.class, jsonStr);
                }
                return true;
            } catch (Exception e) {
                return false;
            }
        }
    
        public static void main(String[] args) {
            User user = new User();
            user.setAccount("admin");
            user.setCreateTime(new Date());
    
            String json = toJson(user);
    
            System.out.println("压缩后的json字符串:========》");
            System.out.println(json);
    
            System.out.println("方便调试查看的json字符串:===》");
            System.out.println(toJsonForHuman(user));
    
            System.out.println("不输出值为null的json字符串:==》");
            System.out.println(toJsonNotNull(user));
    
            User user2 = fromJson(User.class, json);
    
            System.out.println("json字符串转对象:==========》");
            System.out.println(user2.getAccount() + user2.getCreateTime());
    
            List<User> users = Lists.newArrayList(user);
            String jsons = toJson(users);
            List<User> users2 = fromJsonAsList(User.class, jsons);
            System.out.println("转换为集合后的集合长度:=======》");
            System.out.println(users2.size());
    
            System.out.println(isJson(json));
            System.out.println(isJson(jsons));
            System.out.println(isJson("{\"aaaa\":}"));
        }
    
    }
    
    
    更多相关内容
  • 一、JSON字符串转换为JSON对象 要使用上面的str1,必须使用下面的方法先转化为JSON对象: //由JSON字符串转换为JSON对象 var obj = eval(‘(‘ + str + ‘)’); 或者 var obj = str.parseJSON(); //由JSON...
  • 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数。 2. 使用Function对象来进行返回解析。...这里首先给出JSON字符串集,字符串集如下: 代码如下:var data = ” { root:  
  • 下面小编就为大家带来一篇Java中Json字符串直接转换为对象的方法(包括多层List集合)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Json字符串转为对象JSONObject

    千次阅读 2022-01-28 11:36:23
    将其dataWrap.collectData()收集的数据Joson字符串经过处理转为对象

    将Json字符串转为对象JSONObject
    有些JSON类型的字符串无法直接转对象,需要先做处理。例如dataWrap.collectData()收集的数据:

    jsonStr = {"dataWrap.jsonData":"\"data\":{\"id\":\"177\",\"name\":\"张三\",\"age\":\"21\",\"联系方式\":\"13355556666\",\"createtime\":\"2022-01-21 16:49:42\"}"}`
    

    将其转为对象的思路:
    1.截取data后的冒号:之后的内容 A
    2.截取 A 后的最后的 "}
    3.去除反斜杠
    4.转为字符串

    	/**
    	 * jsonStr  转为 JSONObject
    	 * @param jsonStr
    	 * @return
    	 */
    	public JSONObject toJSONObject(String jsonStr){
    		if(StringUtils.isEmpty(jsonStr)){//字符串为空
    			return null;
    		}
    		JSONObject obj = null;    //定义返回结果
    		String[] strArray =  jsonStr.split(":",3);  
    		if(strArray.length>2){
    			String str =  strArray[2];   //截取  "data": 后的
    			String str2 = str.substring(0,str.length() -2).toString();   //将最后的 "} 去除
    			str2 = str2.replaceAll("\\\\","");   //或者  str = str.replace("\\","");   //将反斜杠去除
    			obj = new JSONObject().fromObject(str2);    //将json字符串转换为json对象
    		}
    		return obj;
    	}
    

    到时候可以直接调用上述方法:

    JSONObject obj1 = toJSONObject(jsonStr);
    
    展开全文
  • //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 代码如下: JSON.parse(jsonstr); //可以将json字符串转换成json...
  • 接受一个JSON字符串,返回解析后的对象。 传入一个畸形的JSON字符串会抛出一个异常。比如下面的都是畸形的JSON字符串: {test: 1} ( test 没有包围双引号) {‘test’: 1} (使用了单引号而不是双引号) 另外,如果...
  • JSON字符串转JSON对象

    2020-12-02 07:56:13
    适用酒店O2O菜单 var stri = [ //会员中心 { "menucode": 1, "menuname": "会员中心", }, { "menucode": 1, "name": "会员查询", "perm_id": 1, SubsMenu: [{ "perm_id": 1, "menueurl": "Customer/Index", ...
  • 由php对象生成json字符串 php对象变成json字符串.zip
  • 记录一次使用fastjson把json字符串转为对象时属性缺失问题一、问题现象1 使用到的POJO:2 复现步骤二、问题原因三、解决办法四、源码追踪     在一次使用fastJson把json字符串转为对象时,发现有个属性缺失,经...

    记录一次使用fastjson把json字符串转为对象时属性缺失问题


        在一次使用fastJson把json字符串转为对象时,发现有个属性缺失,经多方百度才得问题原因,现将问题原因及解决步骤记录如下:

    一、问题现象

        问题复现步骤如下

    1 使用到的POJO:

    public class SysUser {
       private String userName;
       private String password;
       private String job;
       private String gender = "Unknown";
    
       public SysUser(String userName, String password, String job) {
           this.userName = userName;
           this.password = password;
           this.job = job;
       }
    
       public String getUserName() {
           return userName;
       }
    
       public void setUserName(String userName) {
           this.userName = userName;
       }
    
       public String getPassword() {
           return password;
       }
    
       public void setPassword(String password) {
           this.password = password;
       }
    
       public String getJob() {
           return job;
       }
    
       public void setJob(String job) {
           this.job = job;
       }
    
       public String getGender() {
           return gender;
       }
    
       public void setGender(String gender) {
           this.gender = gender;
       }
    
    
       @Override
       public String toString() {
           return "SysUser{" +
                   "userName='" + userName + '\'' +
                   ", password='" + password + '\'' +
                   ", job='" + job + '\'' +
                   ", gender='" + gender + '\'' +
                   '}';
       }
    }
    

    2 复现步骤

     public static void main(String[] args) {
            SysUser sysUser = new SysUser("大王", "大王", "王者");
            sysUser.setGender("男");
            String jsonString = JSON.toJSONString(sysUser);
            SysUser userObject = JSON.parseObject(jsonString, SysUser.class);
            System.out.println(userObject);
        }
    

       debug查看上述代码的执行结果如下图,由执行结果可看到,我给sysUser变量的字段gender赋值了"男",由sysUser转换成的jsonString中的字段gender值也是男,但是使用

    JSON.parseObject(jsonString, SysUser.class);
    

       把字符串转为SysUser对象时,gender属性仍然为默认值“Unknown”,也就是说并没有把sonString中的字段值赋予SysUser对象的gender变量:
    在这里插入图片描述

    二、问题原因

      此问题困惑了我挺久,网查此问题大部分都是缺少字段的set方法或者属性名有问题导致的。由于根本原因的查找未涉及源码追究,暂不表。
      直接说结论,结论就是,此pojo有四个属性,但是唯一的一个构造方法只包括了其中三个属性,导致另外一个属性在进行字符串转对象时,无法赋值(我一直以为只要有字段属性的get和set方法,fastJson转换时就会把值赋予给相应字段,原来并不是如此)。

    三、解决办法

    解决方法很简单,可用如下两个方式:
     1:增加全参数构造器
     2:增加无参构造器

    四、源码追踪

    暂略。。。。。

    展开全文
  • 写一个工具类,有两个方法,一个是输入类对象,输出类对象json字符串,还有一个是输入json字符串对象类型,输出类对象。 既然跟json有关,我开始百度了解json字符串: 百度是这样说的:JSON(JavaScript Object ...
  • 页面向后台action传递一个json字符串,需要将json字符串转换成Map对象 public Map<String> toMap(Object object) { Map<String> data = new HashMap(); // 将json字符串转换成jsonObject JSONObject jsonObject...
  • java中将json字符串转为实体对象

    千次阅读 2020-08-10 15:30:25
    java中将json字符串转为实体对象 import com.alibaba.fastjson.JSONObject; JSONObject.parseObject("{title:‘完善资料’,content:‘完善个人资料,标签和兴趣爱好’,diamond:’+2’,type:1,status:1}", ...

    作者:施自扬
    微信号:shiziyangwx

    java中将json字符串转为实体对象

    实体展示
    在这里插入图片描述
    演示实现
    在这里插入图片描述

    代码复制:

    import com.alibaba.fastjson.JSONObject;
    JSONObject.parseObject("{title:‘完善资料’,content:‘完善个人资料,标签和兴趣爱好’,diamond:’+2’,type:1,status:1}", ListTaskCenterResponse.class);

    展开全文
  • NULL 博文链接:https://tanyongbing.iteye.com/blog/2083144
  • 今天小编就为大家分享一篇在python中将字符串转为json对象并取值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • java 将 json 字符串转为 java 对象

    千次阅读 2020-03-17 13:19:20
    做项目的时候需要用到这个功能,但一时忘记应该怎么做了。... // 从前端传过来的 json 字符串 com.alibaba.fastjson.JSONArray getallInfos = JSON.parseArray(json); for (int i = 0; i < getallInfos.size(); i...
  • 主要用于将java对象转换为json对象字符串,或字符串数组。
  • json字符串转为json对象 1.eval() var data = "[{message:'data0',id:0},{message:'data1',id:1},{message:'data2',id:2}]" var data1 = = eval(`(${data})`) console.log(data1) // [{ message: "data0", id: 0 },{...
  • 如何把JSON字符串转为指定的Java对象

    千次阅读 2019-07-04 14:12:24
    如何把JSON字符串转为指定的Java对象 介绍 本篇文章介绍如何运用alibaba.fastjson将JSON字符串转为指定的Java对象。 准备 下载com.alibaba.fastjson的jar包。 可在网站MavenRepository: ...
  • json字符串对象的几种方式

    万次阅读 2020-09-28 16:55:22
    json字符串对象 import net.sf.json.JSONObject String response="{\"status\":\"error\",\"message\":\"没有选中文件!\"}"; JSONObject jsonObject=JSONObject.fromObject(response); String documentId=...
  • 主要介绍了Java实现Json字符串与Object对象相互转换的方式,结合实例形式总结分析了java基于Json-Lib、Org.Json、Jackson、Gson、FastJson五种方式转换json类型相关操作技巧,需要的朋友可以参考下
  • 第一种:利用JSON的parse方法,即jsonObj=JSON.parse(jsonStr); 第二种:jsonObj =eval('(' + jsonStr+')'); 第三种:比较难理解:jsonObj =(newFunction("return " +jsonStr))();
  • 指将 JavaScript 值转化为 JSON 字符串的过程。 JSON.stringify() 能够将 JavaScript 值转换成 JSON 字符串JSON.stringify() 生成的字符串可以用 JSON.parse() 再还原成 JavaScript 值。 参数的含义 1)JSON....
  • 下面小编就为大家带来一篇json对象转为字符串,当做参数传递时加密解密的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 把字符串转换成整数 11. 正则表达式匹配 12. 表示数值的字符串 13. 字符流中第一个不重复的字符 13个字符串面试高频答案解析 13字符串 算法刷题LeetCode中文版:字符串 总结 阿里伤透我心,疯狂复习刷题,终于喜提...
  • json字符串转换c++类对象
  • JSON字符串转为java对象

    万次阅读 2018-08-25 09:33:54
    在日常的java开发中,我们经常会需要接收到其它地方传过来的数据,格式也很多都是通过JSON格式来传递的。 所以我们经常需要将JSON格式的数据转换为我们所需要的数据格式,比如javabean形式。 对于只有一层的JSON...
  • 一、JSON字符串转换为JSON对象 要使用上面的str1,必须使用下面的方法先转化为JSON对象: //由JSON字符串转换为JSON对象 var obj = eval(’(’ + str + ‘)’); 或者 var obj = str.parseJSON(); //由JSON字符串
  • jQuery将json对象转为字符串,将json字符串转为对象 2020/07/20 json对象转为字符串 JSON.stringify(jsonObj) json字符串转为对象 JOSN.parse(jsonString) 需要注意的是: 使用eval("(" + jsonObj + “)”) 也可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,279
精华内容 20,511
关键字:

把json字符串转为对象