使用JSONObject和JSONArray输出带有数组的json数据

      最近写接口需要通过json格式返回数据给前端。emmm,刚开始碰到了坑,因为对这两个方法不熟悉,昨天思考一下午没想出来,今天看了一下其他项目代码大概了解到怎么用了。。遇坑的原因是昨天倒错了JSONArray包,没注意到本来项目里有封装有一个JSONArray包。。。

项目要输出带有数组的数据,基本思路就是先创建一个JSONObject对象,再创建一个JSONArray对象,可以使用JSONArray的put方法在中添加多个JSONObject对象后,再用JSONObject的put方法把JSONArray添加进来。。具体实现代码如下:

        JSONObject returnJson = new JSONObject();

		JSONArray array = new JSONArray();
		JSONArray array2 = new JSONArray();

		JSONObject kq = new JSONObject();
		kq.put("kqdm", "库区代码");
	
		kq.put("kqmc", "库区名称");
		kq.put("kqdz", "库区地址");
		kq.put("ccsscq", "仓储设施产权");
	    kq.put("sjcr", "设计仓容");
	    kq.put("yxcr", "有效仓容");
	    kq.put("sjgr", "设计罐容");
	    kq.put("yxgr", "有效罐容");
	    kq.put("frsfzh", "法人身份证号");
	    kq.put("frxm", "法人姓名");
	    kq.put("frsjh", "法人手机号");
	    kq.put("lklxr", "粮库联系人");
	    kq.put("lklxrdh", "粮库联系人电话");
	    kq.put("bgdh", "办公电话");

         array.put(kq);

        JSONObject cf = new JSONObject();

        cf.put("kqdm", "库区代码");
	    cf.put("cfdm", "仓房代码");
	    cf.put("cfbh", "仓房编号");
	    cf.put("cfmc", "仓房名称");
	    cf.put("cx", "仓型");
	    cf.put("cwc", 1);
	    cf.put("cwk", 2);
	    cf.put("cwyg", 3);

        array2.put(cf);

		returnJson.put("dwmc", "单位名称");
		returnJson.put("qydm", "企业代码");
		returnJson.put("dwxz", "单位性质");
		returnJson.put("lsgx", "隶属关系");
		returnJson.put("zyyw", "主营业务");
		returnJson.put("jyfw", "经营范围");
		returnJson.put("dzxlysrs", "大专学历以上人数");

		returnJson.put("kqlb", array);
		returnJson.put("cflb", array2);

        return returnJson.toString();

输出结果:(结果数据不对应)

{
    "lskqs": "粮食库区数",
    "cfdm": "仓房代码",
    "qydm": "企业代码",
    "dwmc": "单位名称",
    "lsgx": "隶属关系",
    "kqs": "库区数",
    "jyfw": "经营范围",
    "zyyw": "主营业务",
    "ygs": "油罐数",
    "ygbh": "油罐编号",
    "yzkqs": "油脂库区数",
    "kqlb": [
      {
        "sffhwry": "是否符合污染源",
        "xzqydm": "行政区域代码",
        "frsfzh": "法人身份证号",
        "lklb": "粮库类别",
        "jcrq": "建成日期",
        "ywxfsy": "有无消防水源",
        "dzyx": "电子邮箱",
        "kqdm": "库区代码",
        "sjcr": "设计仓容",
        "ccsscq": "仓储设施产权",
        "yxcr": "有效仓容",
        "sjgr": "设计罐容",
        "frsjh": "法人手机号",
        "ywfhss": "有无防洪设施",
        "jd": 3,
        "ywtlzyx": "有无铁路专用线",
        "status": "状态"
      }
    ],
    "cfs": "仓房数",
    "zzyzgzsrs": "有职业资格证书人数",
    "yxgr": "有效罐容",
    "ajlb": [
      {
        "czsj": "Fri Sep 07 15:56:07 CST 2018",
        "yglx": "油罐类型",
        "ygjfssssfwh": "油罐及附属设施是否完好",
        "ygbh": "油罐编号",
        "zj": 3,
        "ywjrsz": "有无加热设置",
        "jzsj": "建造时间",
        "jdfs": "检定方式",
        "yxx": "有效性",
        "ygmc": "油罐名称",
        "kqdm": "库区代码",
        "gd": 3,
        "xgsj": "修改时间",
        "hjfs": "焊接方式",
        "status": "状态"
      }
    ]}

 

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

younha66

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值