java对象转json字符串方法_oracle clob转字符串

java对象转json字符串方法_oracle clob转字符串曾今遇到一个问题,需要将JavaBean转换为Json字符串,用fastjson可以很方便的做到。但是得到的结果是JavaBean成员变量的首字母编程了小写。经过查找资料,原来我们可以使用fastjson的@JsonField注解来自定义json中key的值,这样看来还是很方便的。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

曾今遇到一个问题,需要将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的输出格式了,这样看来还是很方便的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190866.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql:Windows修改MySQL数据库密码(修改或忘记密码)

    mysql:Windows修改MySQL数据库密码(修改或忘记密码)今天练习远程访问数据库时,为了方便访问,就想着把数据库密码改为统一的,以后我们也会经常遇到MySQL需要修改密码的情况,比如密码太简单、忘记密码等等。在这里我就借鉴其他人的方法总结几种修改MySQL密码的方法。我就以实际操作修改root密码为例,操作系统为windows这里我们需要注意的是,修改MySQL是需要MySQL中的root权限,一般用户是无法更改的,除非请求管理员。修改密码的三种简…

    2022年5月10日
    35
  • filereaderror_InputStreamReader

    filereaderror_InputStreamReader今天梳理IO笔记时发现一个问题–FileReader是鸡肋吗,它有用吗???在使用字符流读取文本文件时(且不使用包装流时),有两种类提供读取文件方法,分别是InputStreamReader和FileReader,后者为前者子类。引言–当文本文件编码与编译工具默认编码不同时,FileReader类的方法读取文件会出现乱码的情况,这时需要用到转换流InputStreamReader的InputStreamReader(InputStreamin,StringcharsetName)方法。作为转换

    2022年9月25日
    3
  • wptx64能卸载吗_Win10自带应用卸载教程(本人亲测)

    wptx64能卸载吗_Win10自带应用卸载教程(本人亲测)使用win10有一段时间了,其中也用过诸如腾讯电脑管家、软媒魔方等工具对开机启动项进行过优化,多数时候都没出现问题,但最近几次优化使系统出现了各种问题。现在来总结一下,win10的那些服务项目不能动,不能禁止开机启动,不能关闭后台驻留。CoreMessaging:重要进程,关键系统进程,禁用后无法进入系统,ctrl+alt+del键都无效;TaskScheduler:windows系统任务调度程序…

    2022年5月2日
    171
  • 金融之期货软件搭建,股票平台搭建,融资融券平台搭建[通俗易懂]

    金融之期货软件搭建,股票平台搭建,融资融券平台搭建[通俗易懂]金融之期货软件搭建,国际期货平台搭建,期货系统搭建期货系统平台搭建。让你成为平台方,可以在国内国际同时操作,交易规则自定;资金全部在自己平台上。交易平台软件微期货交易软件开发它是将系统连接在微信上,不但节省了用户的移动端空间,还让开户与交易等操作变得更加便利,易于操作。无可否认的是,微期货交易软件开发已成为移动端交易的改革者。这种新型的交易模式一上市就受到用的喜爱,移动端微交易软件开发将是…

    2025年9月2日
    9
  • 用pycharm安装python包_pycharm安装模块

    用pycharm安装python包_pycharm安装模块简介在做python开发时,需要很多依赖包,如果已经安装pip,安装依赖包,可以通过命令行;没有安装的,也可以通过PyCharm安装。具体安装步骤1、在File->Setting,如图:2、点击Project:untilted->ProjectInterpreter,如图:3、点击“+”,如图:4、在弹出的“AvailablePackages”的搜索框输入要安装的依赖包,如图:5、点击左下角的“InstallPackage”,如图:6、等待一会,出现如下界面,依赖

    2022年8月29日
    3
  • 161018–NOIP模拟

    161018–NOIP模拟

    2022年2月21日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号