java链式创建json对象的实现

目录
  • 1、假设我们要创建一个json对象格式如下:
  • 2、往常创建JSON语法:
  • 3、解决方案——链式创建JSON:
  • 4、实现多级JSON
  • 5、YtJSONObject类源码

我们主要介绍一下:java中如何通过最简单的方式实现链式创建json对象,解决创建json代码臃肿的问题。

1、假设我们要创建一个json对象格式如下:

{
    "code": 0,
    "msg": "SUCCESS"
}

2、往常创建JSON语法:

java中传统的创建json一般采用如下形式,先来看一个例子:

JSONObject res = new JSONObject();
res.put("code",0);
res.put("msg","SUCCESS");

这个例子中,每往json中加入一个元素都需要写一遍res.put,每行只能创建一个json的数据,这样比较繁琐,代码也很臃肿,是不是觉得很不科学。

如果你觉得这还能接受,那么你不妨试试二级json,三级json,完整的写下来,你的代码能有几十行是毫不夸张的。

3、解决方案——链式创建JSON:

我们可以采用链式创建JSON的方法,例如下面例子:

JSONObject res1 = new YtJSONObject().put("code",0).put("msg","SUCCESS").getHome();

通过以上例子中,我们实现了链式创建JSON,每往JSON中加入一个元素,只需要在链式写法(也称链条语法)中写.put接上新元素即可。

这样我们就实现了链式创建JSON,好处是免去每次都写res.put的烦恼,创建一个完整的JSON对象只需要一行代码即可,这样代码就整洁清晰了很多。

以上例子中我们用到了一个类:YtJSONObject,这个类是将JSONObject类再次封装的一个加强类,通过.put元素链条写完后,最终采用.getHome获取得到JSONObject类对象,从而实现JSON的链式写法

如需获取JSON字符串,我们只需要使用JSONObject对象原有的方法,例如:

String str = new YtJSONObject().put("code",0).put("msg","SUCCESS").getHome().toString();

这里的.getHome()方法就是真正获取到了JSONObject类对象,同时也就支持了JSONObject类对象的一切方法,所以可以调用.toString()转为json字符串。

4、实现多级JSON

很多时候我们的json都不是一级的,还会有二级、三级、无数级,此时使用传统的json声明语法只会时代码越来越多,作用却不大。

使用链式json如何实现呢,我们来看个例子:

JSONObject res2 = new YtJSONObject()
    .put("code",0)
    .put("msg","SUCCESS")
    .put("result",
        new YtJSONObject()
            .put("id",1)
            .put("url","a")
        )
    .getHome();

以上例子中我们实现了一个二级JSON,就是增加了一个result级别的json,直接在赋值的地方继续new YtJSONObject对象,然后继续向下使用链式写法即可,如果你还需要三级JSON甚至多级JSON也是同理。

为了让语法看起来更加清晰,我把链式写法格式化了一下,更容易看清楚,实际应用中不太长的JSON链式写法完全可以写在一行上。

5、YtJSONObject类源码

import com.alibaba.fastjson.JSONObject;

public class YtJSONObject {

    private JSONObject home;

    public YtJSONObject() {
        this.home = new JSONObject();
    }

    public YtJSONObject put(String key, Object value) {
        home.put(key, value);
        return this;
    }

    public JSONObject getHome() {
        return home;
    }
}

该类只是增强了JSONObject类,使JSONObject类支持链式语法,并不是自行创建了一种JSON类类型,因此使用时还需要在pom.xml中引入一下fastjson

到此这篇关于java链式创建json对象的文章就介绍到这了,更多相关java链式创建json对象内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 利用Java如何实现将二维数组转化为链式储存

    目录 链式存储结构 代码思路 代码实现 输出结果 总结 链式存储结构 链式存储结构的线性表将采用一组任意的存储单元存放线性表中的数据元素.由于不需要按顺序存储,链表在插入.删除数据元素时比顺序存储要快,但是在查找一个节点时则要比顺序存储要慢. 使用链式存储可以克服顺序线性表需要预先知道数据大小的缺点,链表结构可以充分利用内存空间,实现灵活的内存动态管理.但是链式存储失去了数组随机存取的特点,同时增加了节点的指针域,空间开销较大. 下图就是最简单最一般的单向链表: 代码思路 将二维数组压缩成链式存

  • JAVA中实现链式操作(方法链)的简单例子

    在使用jQuery时候,我们经常会看到或者使用到方法链,例如: 复制代码 代码如下: $("#p1").css("color","red").slideUp(2000).slideDown(2000); 这段代码的意思是选择器选择id为p1的html标签,颜色变红,之后slideup,再slidedown. 自然是可以将这几个方法分开写,但是不分开的话不仅有很好的易读性,代码量也会有减少,那么何乐而不为? 这种调用函数的方式在jQuery中称为&

  • JAVA 实现二叉树(链式存储结构)

    二叉树的分类(按存储结构) 树的分类(按存储结构) 顺序存储(用数组表示(静态二叉树))   链式存储 一些特别的二叉根: 完全二叉树,平衡二叉树(AVL),线索二叉树,三叉的(带父亲的指针)    二叉搜索树或者叫二叉 查找树(BST)  所用二叉树如下图所示: 二叉树的Java实现(链式存储结构) class TreeNode { private int key = 0; private String data = null; private boolean isVisted = false

  • Java及Android中常用链式调用写法简单示例

    本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形式进行调用,最典型的就是RxJava.android中AlertDialog控件的源码也是这种形式的.查阅可知,大家把它叫做链式调用."行动是检验程序的唯一标准"0.0!查了.说了那么多,还是得自己写个例子并运行出预期的效果. /** * * 链式调用 * * @author k.k *

  • Java栈之链式栈存储结构的实现代码

    Java栈之链式栈存储结构实现 一.链栈 采用单链表来保存栈中所有元素,这种链式结构的栈称为链栈. 二.栈的链式存储结构实现 package com.ietree.basic.datastructure.stack; /** * 链栈 * * Created by ietree * 2017/4/29 */ public class LinkStack<T> { // 定义一个内部类Node,Node实例代表链栈的节点 private class Node { // 保存节点的数据 priva

  • Java实体类实现链式操作实例解析

    这篇文章主要介绍了Java实体类实现链式操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 原来是这么写bean的,单纯的使用get.set方法,再加一个toString package Model; /** * @author: Davion * @date: 2019/12/11 * @description: */ public class User { private Integer id; private String nam

  • Javasript设计模式之链式调用详解

    本文实例为大家分享了js设计模式之链式调用的具体代码,供大家参考,具体内容如下 写过jquery的可能都知道,jquery里面可以很方便的使用以下代码: // 不使用链式调用 const element = $(ele); element.addClass('red'); element.removeClass('green'); element.show(); // 链式调用 $(ele) .addClass('red') .removeClass('green') .show(); 而jqu

  • java链式创建json对象的实现

    目录 1.假设我们要创建一个json对象格式如下: 2.往常创建JSON语法: 3.解决方案——链式创建JSON: 4.实现多级JSON 5.YtJSONObject类源码 我们主要介绍一下:java中如何通过最简单的方式实现链式创建json对象,解决创建json代码臃肿的问题. 1.假设我们要创建一个json对象格式如下: { "code": 0, "msg": "SUCCESS" } 2.往常创建JSON语法: java中传统的创建json一

  • js+ajax处理java后台返回的json对象循环创建到表格的方法

    本文实例讲述了js+ajax处理java后台返回的json对象循环创建到表格的方法.分享给大家供大家参考,具体如下: //注:LO是表格的id: 需要自己创建表头, n行,9列的表格: var tab_id; function varify(cardinno) { tab_id=document.getElementById("Layer1"); displayDiv(); tab_id.style.display="none"; var url="get

  • Java基础之创建虚拟机对象的过程详细总结

    一.对象的创建 1.1 new 类名 虚拟机遇到一条new指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已经被加载.解析和初始化过.如果没有,先执行相应的类加载过程. 1.2 分配内存 虚拟机为新生对象分配内存.对象所需内存大小在类加载完成后就可以确定,为对象分配内存等同于把一块确定大小的内存从Java堆中划分出来. (1)内存分配的方式有两种: ① 指针碰撞: java堆如果规整,一边是用过的内存,一边是空闲的内存,中间一个指针作为边界指示

  • Jquery通过JSON字符串创建JSON对象

    <html> <body> <h2>通过 JSON 字符串来创建对象</h3> <p> First Name: <span id="fname"></span><br /> Last Name: <span id="lname"></span><br /> </p> <script type="text/ja

  • java对象与json对象之间互相转换实现方法示例

    本文实例讲述了java对象与json对象之间互相转换实现方法.分享给大家供大家参考,具体如下: import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class MainClass { public st

  • 详谈Java中net.sf.json包关于JSON与对象互转的坑

    在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递.数据的格式通常有2种:1.xml:2.JSON.通常来说都是使用JSON来传递数据.本文正是介绍在Java中JSON与对象之间互相转换时遇到的几个问题以及相关的建议. 首先明确对于JSON有两个概念: JSON对象(JavaScript Object Notation,JavaScript对象表示法).这看似只存是位JavaScript所定制的,但它作为一种语法是独立于语言以及平台的.只是说

  • JavaScript数组、json对象、eval()函数用法实例分析

    本文实例讲述了JavaScript数组.json对象.eval()函数用法.分享给大家供大家参考,具体如下: 一.JavaScript中的数组 数组使用[].new Array()或new Array(count)进行创建 创建数组之后我们可以对其静态初始化,也可以对其动态赋值 数组的常用属性:length 数组的常用方法:toString().join().reverse().push().pop() <script type="text/javascript"> //静

  • JavaWeb实体类转为json对象的实现方法

    1.创建个实体类 实体类User代码: package com.neuedu.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; /** * Keafmd * * @ClassName: User * @Description: user实体类 * @author: 牛哄哄的柯南 * @date: 2020-12-

  • VBScript把json字符串解析成json对象的2个方法

    asp/vbscript将json字符解析为json对象的方法,如果asp使用jscript来编写服务器端代码操作json字符串就简单了,vbscript需要MSScriptControl.ScriptControl或者服务器端的jscript来作为中间体才行. vbscript将json字符解析为json对象的方法一 使用MSScriptControl.ScriptControl组件,请用IE浏览器运行本示例,会有安全提示,需要点击"是"允许创建. MSScriptControl.S

  • 直接在JS里创建JSON数据然后遍历使用

    之前我已经有讲过后台返回json数据到前台,并在前台遍历json数据. 这里讲下直接在JS里创建JSON数据,然后遍历使用~ 创建代码如下:(创建的是JSON对象) var YearSelect = {}; var Year = 2014; var DateOption; for (var i = Year; i < Year + 12; i++) { DateOption = {'Year':i, 'Month':i-Year+1}; / alert(DateOption.Year) Year

随机推荐