java中对json进行编码/解码

文章目录

      • 使用的Jar包?
      • 解码
      • 简单编码
      • 复杂编码
      • 总结

通常我们都是在页面中对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"));

结果:
java中对json进行编码/解码_第1张图片
成功获取到了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-----> [ { },{ } ]

你可能感兴趣的:(#,java)