赞
踩
–人无远虑,必有近忧–
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
JSONObject是一种数据结构,可以理解为JSON格式的数据结构,即“key-value”结构,其格式为“{“key1”:value1,“key2”,value2…}”;JSONObject添加元素可以使用put和get方法。
JsonObject 就是常说的 json。是一种重要的数据传输对象。
因为ajax请求不刷新页面,但配合js可以实现局部刷新,因此json常常被用来作为异步请求的返回对象使用。
通过response.getWriter()获取PrintWriter pw,然后pw.print(json)。如果没有设置response.setContentType(“application/json; charset=utf-8”); 则需要自己再js中进行解析。
JSONObject添加元素可以使用put(key,value)方法和调用元素方法get(key),这两种方法大家可以任选一种,另外JsonObject是一种重要的数据传输对象,是实际工作中是必不可少的。
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.1</version>
</dependency>
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.crazyit.app.test.TestStudent; import org.junit.jupiter.api.Test; import java.util.Map; import java.util.Set; public class TestJsonObjet { @Test public void testJsonObjet(){ //新建JSONObject对象 JSONObject object1 = new JSONObject(); //1.在JSONObject对象中放入键值对 object1.put("name", "张三"); object1.put("name1", "张三1"); object1.put("name2", "张三2"); //2.根据key获取value String name = (String) object1.get("name"); System.out.println(name); //3.获取JSONObject中的键值对个数 int size = object1.size(); System.out.println(size); //4.判断是否为空 boolean result = object1.isEmpty(); System.out.println(result); //5.是否包含对应的key值,包含返回true,不包含返回false boolean isContainsKeyResult = object1.containsKey("name"); System.out.println(isContainsKeyResult); //6.是否包含对应的value值,包含返回true,不包含返回false boolean isContainsValueResult = object1.containsValue("王五"); System.out.println(isContainsValueResult); //7.JSONObjct对象中的value是一个JSONObject对象,即根据key获取对应的JSONObject对象; JSONObject object2 = new JSONObject(); //将jsonobject对象作为value进行设置 object2.put("student1", object1); JSONObject student =object2.getJSONObject("student1"); System.out.println(student); //8.如果JSONObject对象中的value是一个JSONObject数组,既根据key获取对应的JSONObject数组; JSONObject objectArray = new JSONObject(); //创建JSONArray数组 JSONArray jsonArray = new JSONArray(); //在JSONArray数组设值:jsonArray.add(int index, Object value); jsonArray.add(0, "this is a jsonArray value"); jsonArray.add(1, "another jsonArray value"); objectArray.put("testArray", jsonArray); //获取JSONObject对象中的JSONArray数组 JSONArray jsonArray2 = objectArray.getJSONArray("testArray"); System.out.println(jsonArray2); //9.remove.根据key移除JSONObject对象中的某个键值对 object1.remove("name"); System.out.println(object1); //10.取得JSONObject对象中key的集合 Set<String> keySet= object1.keySet(); for (String key : keySet) { System.out.print(" "+key); } System.out.println(); //11.取得JSONObject对象中的键和值的映射关系 Set<Map.Entry<String, Object>> entrySet = object1.entrySet(); for (Map.Entry<String, Object> entry : entrySet) { System.out.println(entry); } //12.转换为json字符串 String str1 = object1.toJSONString(); System.out.println(str1); String str2 =object1.toString(); System.out.println(str2); //13.将JSONObject转换成对象 JSONObject jsonObject = new JSONObject(); jsonObject.put("name","张三"); jsonObject.put("age","12"); String JSONStr = JSON.toJSONString(jsonObject); TestStudent testStudent = JSON.parseObject(JSONStr, TestStudent.class); System.out.println(testStudent); } }
TestStudent 实体类
package org.crazyit.app.test; import lombok.Data; @Data public class TestStudent { private String name; private String age; @Override public String toString() { return "TestStudent{" + "name='" + name + '\'' + ", age='" + age + '\'' + '}'; } }
输出结果:
com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 TestJsonObjet,testJsonObjet 张三 3 false true false {"name":"张三","name2":"张三2","name1":"张三1"} ["this is a jsonArray value","another jsonArray value"] {"name2":"张三2","name1":"张三1"} name2 name1 name2=张三2 name1=张三1 {"name2":"张三2","name1":"张三1"} {"name2":"张三2","name1":"张三1"} TestStudent{name='张三', age='12'} Process finished with exit code 0
删除key不用考虑key是否存在,有就删除,没有不会报错,获取key没有的时候会返回null
import com.alibaba.fastjson.JSONObject; import org.junit.jupiter.api.Test; import java.math.BigDecimal; public class TestJsonObjet1 { @Test public void testJsonObjet(){ //新建JSONObject对象 JSONObject object1 = new JSONObject(); //1.在JSONObject对象中放入键值对 object1.put("name", "张三"); object1.put("name1", "张三1"); object1.put("name2", "张三2"); // 成功删除存在的key,返回key对应的value Object name = object1.remove("name"); // 通过key,value删除,返回结果是bollean boolean remove = object1.remove("name1", "张三3"); // 删除一个不存在的key返回结果是null Object na3123me = object1.remove("na3123me"); System.out.println(name); System.out.println(remove); System.out.println(na3123me); String string = object1.getString("3123"); Object o = object1.get("3123"); int intValue = object1.getIntValue("3123"); BigDecimal bigDecimal = object1.getBigDecimal("3123"); System.out.println(string); System.out.println(o); System.out.println(intValue); System.out.println(bigDecimal); System.out.println(object1); } }
输出结果:
张三
false
null
null
null
0
null
{"name2":"张三2","name1":"张三1"}
Process finished with exit code 0
//新建JSONObject对象 JSONObject object1 = new JSONObject(); //1.在JSONObject对象中放入键值对 object1.put("name", "张三"); object1.put("name1", "张三1"); object1.put("name2", "张三2"); object1.put("age", 12); object1.put("money", 1200.00); Map<String, String> map = new HashMap<>(); Iterator<Map.Entry<String, Object>> iterator = object1.entrySet().iterator(); while(iterator.hasNext()){ Map.Entry<String, Object> object = iterator.next(); // 强制转换,会类型转换异常java.lang.ClassCastException // map.put(object.getKey(), (String) object.getValue()); map.put(object.getKey(), object.getValue()+""); } System.out.println(map);
结果:
{money=1200.01, name=张三, name2=张三2, name1=张三1, age=12}
Iterator<Entry<String,String>> iter=map.entrySet().iterator(); 是什么意思
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。