java中对json进行编码/解码


通常我们都是在页面中对json格式的数据进行解码。今天我遇到一个问题:在java中对json数据进行解码?

使用的Jar包?

如果使用的是maven项目,可以导入下面的依赖

      <!-- org.json/json,在java中的编码解码 -->
      <dependency>
          <groupId>org.json</groupId>
          <artifactId>json</artifactId>
          <version>20180813</version>
      </dependency>

如果使用的是web项目,可以导入下面jar包

json-20180813.jar,org.json请自行百度。

假设:接收了一串儿json数据,在java中按照键获取对应的值。

 String jsonStr="{'id':'1','name':'dz','age':23,'sex':'男'}";  //json

解码

	//创建解析json对象的句柄
  JSONObject jsonObject = new JSONObject(jsonStr);
  System.out.println(jsonObject.get("id")+":"+jsonObject.get("name"));

结果:
在这里插入图片描述
成功获取到了json里面的数据。

那怎么用它编码一段json格式的数据呢?

简单编码

编码一段与上面相同格式的json字符串儿。

     JSONObject jo = new JSONObject();
     jo.put("id", "1");
     jo.put("name","dz");
     jo.put("age","23");
     jo.put("sex","男神");
     System.out.println(jo.toString());
     /*
		{
		  “id”:"1"
		  ...
		}
	*/

结果
在这里插入图片描述

然后在编写一段儿,复杂一点儿的json字符串,如下格式:
{
“dad”: “dz”,
“son”:[
{
“id”:“1”,
“name”:“yy”
},
{
“id”:“2”,
“name”:“jj”
}
]
}

复杂编码

        //创建一个json数组
        JSONArray jsonArray = new JSONArray();
        //创建第一个数组中的内容
        JSONObject jot3=new JSONObject();
        jot3.put("id","1");
        jot3.put("name","yy");
        //放到数组之中
        jsonArray.put(jot3);
        //创建第二个数组中的内容
        JSONObject jot4=new JSONObject();
        jot4.put("id","2");
        jot4.put("name","jj");
        jsonArray.put(jot4);
        JSONObject son = new JSONObject();
        son.put("son",jsonArray);
        //***
        //放到一个最外层的json里面
        JSONObject da=new JSONObject();
        da.put("dad","dz");  //====>  {"dad":"dz"}
        da.put("son",jsonArray); //====>  {["id":"1","name":"yy"],["id":"2","name":"jj"]}
        System.out.println(da.toString());
        /*
          {"dad":"dz",["id":"1","name":"yy"],["id":"2","name":"jj"]}
         */

结果
在这里插入图片描述

总结

  1. JSONObject -------> 创建的是一个 { }。
  2. JSONArray--------->创建的是一个[ ]。
  3. JSONArray里面放的是JSONObject-----> [ { },{ } ]
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白说(๑• . •๑)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值