精华内容
下载资源
问答
  • 本文主要是企业开发中有个业务,客户传来的json数据的字段都是中文,我需要将json对象转成一个全英文属性的pojo类对象进行数据库IO操作,我采用的方案是Java的反射机制,并通过Map类进行字段对应设置;代码使用的是...

    Java反射机制及其相关应用:将任意一个JSON对象映射成一个pojo类实例,可进行参数对应

    本文主要是企业开发中有个业务,客户传来的json数据的字段都是中文,我需要将json对象转成一个全英文属性的pojo类对象进行数据库IO操作,我采用的方案是Java的反射机制,并通过Map类进行字段对应设置;代码使用的是Gson的JsonObject。

    动态语言

    首先我们先了解一下动态语言的概念:程序运行时,允许改变程序结构或者变量类型,这种语言称为动态语言。Java不是一门动态语言,但是其提供了一个机制:Reflection(反射),其允许Java程序在运行时加载一个编译时完全未知的对象,并且可以获取其构造以及用其创建一个对象实体。这种能力被称为introspection,即内省。

    实现方法

    • Class类:代表一个类,位于java.lang包下,获取途径如下:
    1. 使用类名.class语法。

    2. Class a=String.class;
      
    3. 使用对象的getClass()方法

    4. String str = "aa";
      Class<?> classType1 = str.getClass();
      
    • Field类:代表类的成员变量(成员变量也称为类的属性)。
    • Method类:代表类的方法。
    • Constructor类:代表类的构造方法。
    • Array类:提供了动态创建数组,以及访问数组的元素的静态方法。

    Class类提供了很多方法,可以见官方API,后面我会给出下载链接
    在这里插入图片描述

    通过Class类我们可以在程序运行过程中获取任意一个类的各种信息:如方法、类名、包路径等等;甚至可以动态创建一个对象实体。

    应用

    1. /**
       * @param pojo    要映射到的pojo类(pojo类字段需全为String)
       * @param compare 字段配对{"pojo属性名":"JSON对象key名"}
       * @param obj     JSON对象
       * @return Object pojo类实例
       * @author Huang Yongxiang
       * @description 将任意一个JSON对象映射构建成一个pojo类实例
       */
      public static <T> T JsonObjToPojo(Class<T> pojo, Map<String, String> compare, JsonObject obj) {
          if (pojo == null || compare == null || obj == null) {
              System.out.println("JSONObject转pojo对象失败,部分参数为空!");
              return null;
          }
          T out = null;
          try {
              out = pojo.newInstance();
              Set<String> keys = compare.keySet();
              Iterator<String> ite = keys.iterator();
              while (ite.hasNext()) {
                  String key = ite.next();
                  String jkey = compare.get(key);
                  String value = obj.get(jkey).toString();
                  value = value == null ? "" : value;
                  String upkey = key.substring(0, 1).toUpperCase() + key.substring(1);
                  String setMethod = "set" + upkey;
                  Method method[] = pojo.getDeclaredMethods();
                  for (int j = 0; j < method.length; j++) {
                      if (method[j].getName().equals(setMethod)) {
                          method[j].invoke(out, value);
                          break;
                      }
                  }
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
          return out;
      }
      

    上面代码使用java的反射机制,可将一个中文key的json对象直接转成一个英文属性的pojo类实例,map可以设置字段对应规则;由于用户传来的value值随机性比较大,类型转换于是取消了,统一使用String型,后期会对类型进行稽核。

    本文涉及到的源码+JDK1.8API中文版见下载链接:

    可将一个中文key的json对象直接转成一个英文属性的pojo类实例,map可以设置字段对应规则。

    本文涉及到的源码+JDK1.8API中文版见下载链接:
    https://download.csdn.net/download/qq_45060540/21602127
    或去本人主页下载

    展开全文
  • 原 @requestbody接收json参数 映射到 实体类中 Date(时间日期)类型转换问题 2018年03月16日 11:03:13 TROY_Musou 阅读数:1304 ...

    @requestbody接收json参数 映射到 实体类中 Date(时间日期)类型转换问题

    展开全文
  • 1.多参传递(json/内存映射), 支持中文 2.快捷键 3.全屏 4.ini解析, 支持中文 5.cookies, 支持中文 6.中文路径处理 原文出处:http://bbs.oltag.com/index.php/topic/show/64 demo(26.6MB) for windows:...

    1.多参传递(json/内存映射),  支持中文

    2.快捷键

    3.全屏

    4.ini解析,  支持中文

    5.cookies,  支持中文

    6.中文路径处理

    原文出处:http://bbs.oltag.com/index.php/topic/show/64


    demo(26.6MB) for windows:
    http://oltag.com:8080/yaolixing/18/11/00/v52/cookie_demo.rar

    展开全文
  • I'm using AttributeConverter to convert MySQL JSON column to Object as mentioned in https://stackoverflow.com/a/31547965/1633272It works fine when storing data into MySQL, I can see the correct values...

    I'm using AttributeConverter to convert MySQL JSON column to Object as mentioned in https://stackoverflow.com/a/31547965/1633272

    It works fine when storing data into MySQL, I can see the correct values in WorkBench.

    But, when getting the column back to java application, one unicode char is mapped into 3 chars.

    Here's an example, the JSON string "中" just has 1 unicode char wrapped by quotes. In Evaluation Expression window I can see it is mapped as

    0 = '"' 34

    1 = 'ä' 228

    2 = '¸' 184

    3 = '\u00AD' 173

    4 = '"' 34

    Libs I'm using:

    'mysql:mysql-connector-java:5.1.39',

    'org.springframework.data:spring-data-jpa:1.9.0.RELEASE',

    'org.hibernate:hibernate-entitymanager:5.0.6.Final',

    解决方案

    This bug has been fixed in mysql-connector-java:5.1.40

    展开全文
  • project.json 和 csproj 属性之间的映射 .NET Core 工具的开发过程中实施了一项重要的设计更改,即不再支持project.json文件,而是将 .NET Core 项目转移到 MSBuild/csproj 格式。 本文介绍project.json中的设置...
  •  我们在用MyBatis里,很多时间有这样一个需求:POJO里有个属性是非基本数据类型,在DB存储时我们想存的是json格式的字符串,从DB拿出来时想直接映射成目标类型,也即json格式的字符串字段与Java类的相互类型转换。...
  • python Json

    2016-11-01 13:37:51
    一些问题 Json 数据 (字典 ,map 映射Json 数据 到 string ...Json.loads() ...Dict 到json ...Json.dump() ...Json 按键数据排序 ...解决方案: 使用json.dumps(string,sort_keys=True), ...Json 中文数据 解
  • Json

    2011-07-18 10:54:10
    JSON 是什么? JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON与XML具有相同的特性,例如易于人编写和阅读,易于机器生成和解析。但是JSON比XML数据传输的有效性要高出很多。JSON完全...
  • JSON

    2021-04-18 21:41:00
    FastJson 1.引入maven <!-- jackson--> <!-- jackson-core,核心... Jackson 内部实现正是通过高性能的流模式 API 的 JsonGenerator 和 JsonParser 来生成和解析 json。--> <!-- jackson-annotation
  • [WebMethod] public ActionResult AjaxPager() { //获取发来的json string s = Request.QueryString.ToString(); string s2 = Regex.Unescape(s); //转换...
  • json

    2012-10-16 16:29:48
    Fastjson内幕 JSON协议使用方便,越来越流行。JSON的处理器有很多,为什么需要再写一个呢?因为我们需要一个性能很好的JSON Parser,希望JSON Parser的性能有二进制协议一样好,比如和protobuf一...
  • json模块中提供了json.load、json.dump、json.loads和json.dumps这四个方法。其中json.dumps和json.loads为json的序列化和反序列化,而json.dump和json.load则是涉及文件操作的序列化存储和反序列化载。其中json....
  • JSON 文件非常棒,因为它们以人类可读的格式存储数据集合。然而,如果 JSON 文件被最小化过,那么阅读 JSON 文件可能会很痛苦。• 来源:linux.cn • 作者:Abhishek Prakash • 译者:geekpi •(本文字数:1404,...
  • 文章目录KURENTO JSON-RPC版本描述代码结构Json-Rpc 服务端Session控制Handlers处理高级特性连接事件处理Notifications通知Java文档Json-Rpc客户端创建客户端发送请求其他消息:通知服务端响应Error对象添加连接监听...
  • springMVC返回的json中文全是问号

    千次阅读 2018-07-06 11:14:53
    springMVC.xml里加上: &lt;mvc:annotation-driven&gt; &lt;mvc:message-converters register-defaults...-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 注解请求映射 默认是ISO-88859-1,...
  • ``` { "a": { "a1": [ { "a11": 1 ...a: 中文a ... a1: 中文a1 ... a11: 中文a11 ... a12: 中文a12 ... a: (中文a2) ...没有class 映射。 注意如果嵌套的json中key 也是 a 那么文字将是另一个意思
  • json异常

    千次阅读 2019-04-26 16:15:32
    这个的错误主要的意思就在于json的转换问题。 我看了之前的一些问题报错,一般就在于以下几个方面: 1.pojo的javaBean的getBean取不到。 2.Spring和json的包冲突。 3.json的几个包没有导入 所以这时候...
  • springmvc返回json字符串中文乱码两种解决:局部,全局解决。 方法一:在controller接收参数时,对参数进行转码 @RequestMapping(value = "/json",produces = "application/json; charset=utf-8") 方法二:...
  • 1.通过json结构来映射数据,可以很清晰的看出数据之间的逻辑关系!我们在爬取数据的是时候只需要将数据和json字段做映射,通过json的key将value替换换成爬回来的数据,这样数据不会凌乱。 { "base_header":{ ...
  • SpringMVC使用注解@ResponseBody返回json以及中文乱码问题解决  在这里我不得支持一下SpringMVC是一个不错的框架,用了springmvc这么长时间 ,我犯了个错误,说来惭愧.  在项目中编码格式是UTF-8 ,在使用...
  • JSONObject(Gson().toJson(bean)) val obj2 = jsonObject.getJSONObject("data") //动态获取key值 val iterator = obj2.keys() val list = ArrayList() while (iterator.hasNext()) { val key = iterator.next() val...
  • 原文 JSON Binding API (JSR 367) 本规范定义java对象和JSON转换的API,JSON具体详情可以参考附录[1], 假定认为读者对于JSON非常熟悉,更多关于json参考如下: 架构风格与基于网络的软件架构设计 参考附录[2] ...
  • 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错...
  • FastJson转换Json将Key值设置为中文 在处理数据时,英文看着不舒服,就想着转换为中文 @JSONField 在实体类上给要用的字段名上添加注解即可 import com.alibaba.fastjson.annotation.JSONField; import lombok....
  • Json基础入门

    2020-09-16 21:58:49
    什么是JsonJson(JavaScript Object Natation),即JS对象标记,是一种轻量级的数据交换格式,目前使用特别的广泛,尤其在前后端分离的开发中。 Json采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,164
精华内容 10,465
关键字:

json中文映射