精华内容
下载资源
问答
  • 怎么使用jquerytable封装成json数据呢? 数据是多行 我找出一行来 请问该如何处理呢? <tbody> <tr id="line1"> <td>1</td> <td><input type=...
  • 项目当中我希望一个对象方便的封装成JSON对象,当然需要导入相关Jar 包 json-lib-2.2.2-jdk15.jar 与commons-beanutils-1.7.0.jar 下面生成Json对象,使用fromObject()方法将user对象格式化成Json格式,如下面代码: ...

    第一种方法:

    项目当中我希望把一个对象方便的封装成JSON对象,当然需要导入相关Jar 包 json-lib-2.2.2-jdk15.jar 与
    commons-beanutils-1.7.0.jar

    下面生成Json对象,使用fromObject()方法将user对象格式化成Json格式,如下面代码:

     JSONObject json = new JSONObject().fromObject(user)

    当我重启运行后,出现下面的错误

    net.sf.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.ares.pojo.Member.blacklists, no session or session was closed

    这种错误是因为 Hibernate 对象映射后延迟加载错误,好吧,我们把lazy=flase就OK了.可惜我使用的注解的形式,所以我得把 fetch = FetchType.EAGER 换成 fetch = FetchType.LAZY 以为成功了,可是还是出错了,异常如下:net.sf.json.JSONException: There is a cycle in the hierarchy!

     好吧,上面的异常出现那你就不得不看看你映射后的实体当中是不是有对象的集合,这里我将我的实体(member)对象给大家看一下,如下图:



     实体当中有四个集合,如下:

        private Set<Prepaidlog> prepaidlogsForOperateid = new HashSet<Prepaidlog>(0);
        private Set<Shortmsg> shortmsgs = new HashSet<Shortmsg>(0);
        private Set<Prepaidlog> prepaidlogsForOperatedid = new HashSet<Prepaidlog>(0);
        private Set<Blacklist> blacklists = new HashSet<Blacklist>(0);

    当json-lib反序列化中会进行双向转换,从而形成死循环,会报一个json-lib的经典异常:net.sf.json.JSONException: There is a cycle in the hierarchy!

    也就是说主外键自身关联的是个死循环,那怎么才能不让他出现这种情况呢,应该有个配置的参数后者终止循环的地方吧,查看发
    现,jsonConfig,呵呵,config应该是配置参数吧,参看JsonConfig看见巨多的属性,有点晕PropertyFilter 
    ,不提了,看了老半天,发现了一个属性PropertyFilter,PropertyFilter 是一个interface,代码如下:

     

    public interface PropertyFilter
    {


    public abstract boolean apply(Object obj, String s, Object obj1);
    }

    也就是说我可以通过这个方法过滤掉集合里的相应属性,只要让它返回true就可过滤掉,……,有点悬……我们重写一下这个方法:


    JsonConfig cfg = new JsonConfig();
        cfg.setJsonPropertyFilter(new PropertyFilter()
        {
             public boolean apply(Object source, String name, Object value) {
               if(name.equals("prepaidlogsForOperateid ")||name.equals("shortmsgs ")||name.equals("prepaidlogsForOperatedid ")||name.equals("blacklists ")) {
                 return true;
               } else {
                 return false;
              }
            }
           });

    将hibernate产生的实体bean中的prepaidlogsForOperateid shortmsgs 和 prepaidlogsForOperatedid 还有 blacklists 过滤掉就OK了!

    然后调用JSONObject jsonObject = JSONObject.fromObject(member, config);将数据转换成Json对象.

     

    第二种方法:

    第二种方法使用的是Google的Gson 当然导入相关Jar包:gson-2.1.jar

    如果没有主外键自身关联的死循环那,直接可以使用

    Gson gson = new Gson();

    gson.toJson(member);

    上面的方法就是把对象封装成Json对象.

    可是我的情况就不一样了,我的操作如下:

    因为采用的是注解开发,以所我在我的实体当中要显示的属性要设置为@Expose,当实体的属性设置成@Expose注释的属性将不会被序列化,如我下图:



     然后如下使用就可以了

     Gson gson=new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

    gson.toJson(member);

    不足之处请大家指点与拍砖,谢谢!

    展开全文
  • 我想一个数组封装成json String []data={"64","69"} JSONObject json=new JSONObject(); json.put("workgroups", data); 但是这样做之后json就变成("workgroups": "[64,69]") 我不想要data 外边的双引号 该怎么做...
  • 这是我的JSON:{"res":"01","n":"2","info":[{"id":"1","name":"1111xxx","ver...我知道是因为键值不唯一,但是我想要的就是解析后把数据自动封装成表格,而不是一项一向的自己写,请问我要怎么改我的方法才能实现呢?
  • PS:11.15看了一下午终于项目...1.json理解:步骤1:就是后台的List或Map等封装数据,利用json.jar包直接转换成json对象,这样复杂类型data就变成了json形式{"int":1,"name":"kava","func":function(){return 3...

    PS:11.15看了一下午终于把项目中flexigrid中复杂封装数据类型--->json-->返回前台显示的整个过程:原理看明白了!!!

    1.json理解:

    步骤1:

    就是把后台的List或Map等封装数据,利用json.jar包直接转换成json对象,这样复杂类型data就变成了json形式{"int":1,"name":"kava","func":function(){return 3;},"bool":true}

    步骤2:

    最后还要把json数据转换成tostring,利用printwriter进行前台显示。

    2.json应用

    0_1328751474V80N.gif

    注意各个jar包必不可少,否则报错^_^

    JsonTest.java代码如下:import net.sf.json.JSONArray;

    import net.sf.json.JSONObject;

    public class JsonTest {

    @SuppressWarnings("unchecked")

    public static void main(String args[]){

    //list集合转换为json代码List list = new ArrayList();

    list.add("girl");

    list.add("boy");JSONArray ja = JSONArray.fromObject(list);

    System.out.println(ja);

    // Map集合转换成json代码Map map = new HashMap();

    map.put("name", "kava");

    map.put("bool", Boolean.TRUE);

    map.put("int", new Integer(1));

    map.put("array", new String[]{"a","b"});

    map.put("func", "function(){return 3;}");

    JSONObject jo = JSONObject.fromObject(map);

    System.out.println(jo);

    //Bean转换成json代码JSONObject jsonBean = JSONObject.fromObject(new UserBean("kava","shanghai","88765687"));

    System.out.println(jsonBean);

    //一般数据转换为json代码JSONArray ja2 = JSONArray.fromObject("['json','shiryu','kava']");

    System.out.println(ja2);

    //一组beans转换为json代码List list2 = new ArrayList();

    UserBean u1 = new UserBean("shiryu","shanghai","6666");

    UserBean u2 = new UserBean("tina","guangzhou","5587");

    list2.add(u1);

    list2.add(u2);

    JSONArray ja3 = JSONArray.fromObject(list2);

    System.out.println(ja3);

    }

    }

    UserBean.java代码如下:public class UserBean {

    private String username;

    private String city;

    private String tel;

    public UserBean() {

    }

    public UserBean(String username,String city,String tel) {

    this.username=username;

    this.city = city;

    this.tel = tel;

    }

    public String getUsername() {

    return username;

    }

    public void setUsername(String username) {

    this.username = username;

    }

    public String getCity() {

    return city;

    }

    public void setCity(String city) {

    this.city = city;

    }

    public String getTel() {

    return tel;

    }

    public void setTel(String tel) {

    this.tel = tel;

    }

    }最后控制台结果如下:

    ["girl","boy"]

    {"func":function(){return 3;},"int":1,"bool":true,"name":"kava","array":["a","b"]}

    {"city":"shanghai","tel":"88765687","username":"kava"}

    ["json","shiryu","kava"]

    [{"city":"shanghai","tel":"6666","username":"shiryu"},{"city":"guangzhou","tel":"5587","username":"tina"}]

    也可将json数据转为java数据

    import net.sf.json.JSONObject;

    public class StringToJson {

    public static void main(String args[]){

    String json = "{name=\"kava\",bool:true,int:1,double:2.2,func:function(a){return a;},array:[1,2]}";

    JSONObject jsonObject = JSONObject.fromObject(json);      Object bean = JSONObject.toBean(jsonObject);     String name = jsonObject.getString("name");          System.out.print(name+"--"+bean.toString());          } }

    展开全文
  • 学习目的 1,了解后台传参给前台的方式 ...1,JSON:序列化成json便于传输,减少传输时间 2,直接Object,List,Map等return回去。(不建议) 第一种JSON传输的好处: 1,传输速度快 2,能够使用transient标...
    学习目的
    1,了解后台传参给前台的方式
    2,前台js怎么获取map里面的数据
    

    了解后台传参给前台的方式

    当页面端请求服务端,服务端处理完后要给页面端一个响应信息。目前我知道的由以下几种响应格式:
    1,JSON:序列化成json便于传输,减少传输时间
    2,直接把Object,List,Map等return回去。(不建议)

    第一种JSON传输的好处:
    1,传输速度快
    2,能够使用transient标记字段,使字段不被序列化

    前台js怎么获取map里面的数据

    后台拿到数据后,页面上可以定义一个属性去接受反序列化后的Map数据:

    <aura:attribute type="Map" name="quoteListMap" />
    

    Map在lightning中,其底层是object,所以可以直接把他当做Object类型使用也是可以的。
    注意: 使用不同的type去接受,得到的数据结构是不一样的。有兴趣的可以去试试。

    var quoteListMap= component.get("v.quoteListMap");
    quoteListMap[key]; -- 使用这种方式拿,如果使用get()会出现错误
    

    记一次拿数据遇到的问题,如果有错,希望可以指出。一起进步!

    展开全文
  • c#中需要查询的数据名称提前封装成类,然后通过查询数据库,得到多条结果,我想得到的结果转化为json字符串。 ``` data=[{ "address": "", "birthday": "1990-05-17", "education": "", "groupId": "", ...
  • 假设这个json就已经是树型结构数据了(如果不知道怎么实现树型结构数据请看我另一篇博客)var compressedArr=afcommon.treeDataToCompressed(json);/*******************************JS封装好的方法******************...

    我就直接上代码了都是实际项目里面用到的

    1.假设这个json就已经是树型结构数据了(如果不知道怎么实现树型结构数据请看我另一篇博客)

    var compressedArr=afcommon.treeDataToCompressed(json);

    /*******************************JS封装好的方法*********************************************/

    var afcommon=(function ($) {

    var prefix="|—";

    let compressedData=[];// 用于存储递归结果(扁平数据)

    return {

    /**

    * 把扁平数据转成树型结构数据(可以实现无限层级树形数据结构,只适用于单个表的数据)

    * @param source

    * @param id

    * @param parentId

    * @param children

    */

    treeDataformat : function(source, id, parentId, children){

    let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆

    return cloneData.filter(father=>{ // 循环所有项,并添加children属性

    let branchArr = cloneData.filter(child => father[id] == child[parentId]); // 返回每一项的子级数组

    branchArr.length>0 ? father[children] = branchArr : '' //给父级添加一个children属性,并赋值

    return father[parentId] == 0 // 如果第一层不是parentId=0,请自行修改

    })

    },

    /**

    * 把树型结构数据转成扁平数据(跟treeDataformat方法相反)

    * @param source

    */

    treeDataToCompressed :function (source) {

    for(let i in source) {

    compressedData.push(source[i]);

    source[i].children && source[i].children.length>0 ? this.treeDataToCompressed(source[i].children) : ""// 子级递归

    }

    return compressedData;

    },

    /**

    * 递归生成 树下拉菜单

    * @param JsonTree 此参数已经是树型结构的数据了 如:JsonTree[{"id": "0","value":"测试","children": []}]

    * @param typeId

    * @param name

    * @returns {string}

    */

    creatSelectTree : function(JsonTree,typeId,name){//js脚本,递归生成 树下拉菜单

    var option="";

    for(var i=0;i

    if(JsonTree[i].children!= undefined && JsonTree[i].children.length>0){//如果有子集

    option+=""+prefix+JsonTree[i][name]+"";

    prefix+="|—";//前缀符号加一个符号

    option+=this.creatSelectTree(JsonTree[i].children,typeId,name);//递归调用子集

    prefix=prefix.slice(0,prefix.length-2);//每次递归结束返回上级时,前缀符号需要减一个符号

    }else{//没有子集直接显示

    option+=""+prefix+JsonTree[i][name]+"";

    }

    }

    return option;//返回最终html结果

    },

    /**

    * 适用于layer.confirm 动态改变title 多语言切换

    * layer.confirm(msg,{titel:'Message'},{btn: ['确定','取消']}, function () {},function () {}) (这样写改变title 好像会对后面的回调函数有影响,不信你试试)

    * @param title

    * @param index

    */

    changeLayerTitle: function (title,index) {

    return layer.title(title, index)

    },

    }

    })(jQuery);

    测试结构:

    8b3cf371c94dfcab783594ff18a69a5d.png

    好的东西就要懂得分享,推荐一个写的好的博客一个字来形容———厉害!

    展开全文
  • Json语法解析

    2015-01-08 20:22:04
    JSON(JavaScript Object Notation) 是一种轻量级的...这时可以这个信息封装成json格式({“馒头”:8}),再传出去,对端服务器对json进行解析,就能得到对应的信息。 目前,不管是在linux系统上,还是java环境中,
  • 最近在写一个和银行相关的项目。需要调用银行提供的接口...于是我重新改了下,Gson换fastJson,并且重新换了一组测试数据,发现继续报错,全是些奇怪的错。使用Gson的话,告诉我什么JSON Object什么什么的,使用...
  • 在做项目的时候,突然发现有一个问题困扰很久,就是前端把封装成list型的JSON对象,后台要怎么获取。 其实这个时候是需要前端将封装的数据进行"user": JSON.stringify(reqData)字符化。后台可直接用@RequestParame...
  • APicloud怎么用java做后台

    千次阅读 2019-03-19 10:32:25
    背景 APICloud是一款制作app的软件,它提供后台服务器,功能十分的强大。一般的企业都会自己的服务器,这个就涉及到后台接口了!...servlet页面通过把数据封装成JSON的格式返回给APICloud的前台页面 ...
  • C#基础类库

    2018-07-11 08:45:26
    List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 8.Mime MediaTypes 电子邮件类型帮助类,规定是以Xml,HTML还是文本方式发送邮件 MimeEntity Mime实体帮助类...
  • C#基类库大全下载--苏飞版

    热门讨论 2013-01-08 19:01:55
    List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 8.Mime MediaTypes 电子邮件类型帮助类,规定是以Xml,HTML还是文本方式发送邮件 MimeEntity Mime实体帮助类...
  • C#基类库(苏飞版)

    2014-05-16 23:11:45
    List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 8.Mime MediaTypes 电子邮件类型帮助类,规定是以Xml,HTML还是文本方式发送邮件 MimeEntity Mime实体帮助类...
  • Gson解析okhttp回调响应的JSON数据 在子线程中更新UI,自动填写验证码 内网穿透,真机安装运行体验 如果这个版本的登录注册掌握了,基本的前后端联合开发就可以入门了。 正文 一、Gradle依赖 1、Gradle版本号...
  • <div><p>未经允许,请勿转载。</strong></p> <p>(如果对SPA概念不清楚的同学可以先自行了解相关概念) 平时喜欢做点小页面来玩玩,并且一直采用单页面应用ÿ...把数据缓存到service࿰...
  • 首页请求数据之后,根据热门度返回多个数据,将数据存储到list集合中,并且将它转换为JSON格式数据,返回到页面,页面解析数据并且显示。  商场则负责显示所有的商品数据,实现侧边栏点击指定的类别之后,显示对应...
  • //利用ajax获取后台的模糊查询的数据,并且封装成下拉列表的形式展现出来 $.ajax({ type : "post",//提交的方法为post //对应的Action提交的路径 url : "(out, URLVariable.SEARCH_ACCOUNT);%>", data:{...
  • JQuery是近几年异军突起的JavaScript框架库,几乎了Web前端开发事实上的标准,大部分企业都是使用JQuery进行Web前端的开发。 学完了这阶段课程,学员将学会开发主流网站的前端效果,比如:焦点图、滚动展示图、...
  • 不同的返回数据整合在一起在统一发送到 store 中</li></ul> <h3>API 层 <ul><li>api/ - 请求数据,Mock数据,反向校验后端api</li></ul> <h3>util 层 <ul><li>util/ - 存放项目全局的工具函数</li><li...
  • JQuery是近几年异军突起的JavaScript框架库,几乎了Web前端开发事实上的标准,大部分企业都是使用JQuery进行Web前端的开发。 学完了这阶段课程,学员将学会开发主流网站的前端效果,比如:焦点图、滚动展示图、...
  • 可以看出mapLimit核心的操作就是先放入需要异步操作的数据,再设定并发数;然后在第一个func中对其进行遍历执行,当执行完成后调用callback,最后所有callback会汇总到第二个func中。有兴趣...
  • 那些无关紧要的、甚至是脏的数据污染了我们的全局数据对象。 这种对数据来源做萃取工作的函数,就叫 <code>action。它叫这个名字,不是因为它「数据预处理」的功能,而是在 web 应用中所有的...
  • 如果<code>index.js源码改为: <pre><code> js 'use strict'; module.exports = bu => `Hello ${bu}`; </code></pre> 为了测试不同的bu,测试用例也对应的改为: ...
  • waveData 是 传过来的 数据他绑定到图形中 ,内存长的飞快,每秒3MB,怎么修改,怀疑是//new Highcharts.Chart(waveLineImage);这句话增长的内存,然后调用 highCharts 的redraw 方法,重画,可是没有效果...
  • <div><h2>1. 什么是“划词高亮”?...本文具体的核心代码已封装成独立库 <a href="https://github.com/alienzhou/web-highlighter">web-highlighter</a>,阅读中如有疑问可参考其中代码↓↓。 ...
  • 比如下面简单的几行代码就能够一个可运行前端应用: <pre><code> xml <title>webapp</title> <link rel="stylesheet" href="app.css"> <h1>app ...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

怎么把数据封装成json