• day30(对象转json(java))


    转换之前需要知道什么是json

      json类似于map集合:键值对的方式存在,是一种轻量级数据交互格式。

      eg:     

        {name:" ",age:15}

        [{name:" ",age:15},{name:" ",age:15}]

    使用工具生成json

      JsonLib来转换对象

          JsonArray 将数组或集合转化为json

          JSONObject 将对象装换为json格式

        依赖的java包

                               

        编写一个javabean

        

    package com.baidu;
    
    public class User {
    	private int id;
    	private String name;
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	@Override
    	public String toString() {
    		return "User [id=" + id + ", name=" + name + "]";
    	}
    	
    }

        测试类:

    package com.baidu;
    
    import java.util.ArrayList;
    import net.sf.json.JSONArray;
    
    public class Demo {
    	public static void main(String[] args) {
    		User u=new User();
    		u.setId(11);
    		u.setName("风清扬");
    		User u1=new User();
    		u1.setId(12);
    		u1.setName("小师妹");
    		ArrayList<User> array=new ArrayList<User>();
    		array.add(u);
    		array.add(u1);
    		JSONArray fromObject = JSONArray.fromObject(array);
    		System.out.println(fromObject.toString());
    	}
    }
    

      输出结果:

    [{"id":11,"name":"风清扬"},{"id":12,"name":"小师妹"}]
    

      测试类:(过滤id)

    package com.baidu;
    
    import java.util.ArrayList;
    import net.sf.json.JSONArray;
    import net.sf.json.JsonConfig;
    
    public class Demo {
    	public static void main(String[] args) {
    		User u=new User();
    		u.setId(11);
    		u.setName("风清扬");
    		User u1=new User();
    		u1.setId(12);
    		u1.setName("小师妹");
    		ArrayList<User> array=new ArrayList<User>();
    		array.add(u);
    		array.add(u1);
    		JsonConfig js=new JsonConfig();
    		js.setExcludes(new String[]{"id"});
    		JSONArray fromObject = JSONArray.fromObject(array,js);
    		System.out.println(fromObject.toString());
    	}
    }
    

      输出结果:

    [{"name":"风清扬"},{"name":"小师妹"}]
    

      使用阿里巴巴的jar包  fastjson.jar

      测试类

    package com.baidu;
    
    import java.util.ArrayList;
    
    import com.alibaba.fastjson.JSON;
    
    
    public class Demo {
    	public static void main(String[] args) {
    		User u=new User();
    		u.setId(11);
    		u.setName("风清扬");
    		User u1=new User();
    		u1.setId(12);
    		u1.setName("小师妹");
    		ArrayList<User> array=new ArrayList<User>();
    		array.add(u);
    		array.add(u1);
    		String arr = JSON.toJSONString(array);
    		System.out.println(arr);
    	}
    }
    

      输出结果:

    [{"id":11,"name":"风清扬"},{"id":12,"name":"小师妹"}]
    

      使用过滤器(过滤id)

    package com.baidu;
    
    import java.util.ArrayList;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
    import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
    
    
    public class Demo {
    	public static void main(String[] args) {
    		User u=new User();
    		u.setId(11);
    		u.setName("风清扬");
    		User u1=new User();
    		u1.setId(12);
    		u1.setName("小师妹");
    		ArrayList<User> array=new ArrayList<User>();
    		array.add(u);
    		array.add(u1);
    		//需要什麼写什么
    		SimplePropertyPreFilter sdfs=new SimplePropertyPreFilter(User.class,"name");
    		String arr = JSON.toJSONString(array,sdfs);
    		System.out.println(arr);
    	}
    }
    

      输出结果:

    [{"name":"风清扬"},{"name":"小师妹"}]
    

      细致过滤某个值

    @Test
    	public void JsonTest1(){
    			User u=new User();
    	        u.setId(11);
    	        u.setName("风清扬");
    	        User u1=new User();
    	        u1.setId(12);
    	        u1.setName("小师妹");
    	        ArrayList<User> array=new ArrayList<User>();
    	        array.add(u);
    	        array.add(u1);
    	        SerializeFilter sf=new PropertyFilter() {//具体的过滤器
    				@Override
    				public boolean apply(Object object, String name, Object value) {
    					/*if("小师妹".equals(value)){
    						return false;
    					}*/
    					System.out.println(object);//表示json对象
    					System.out.println(name);//表示字段
    					System.out.println(value);//表示字段的值
    					return true;
    				}
    			};
    			String arr = JSON.toJSONString(array,sf);
    		     //System.out.println(arr);
    	}
    

      使用Jockson

      

          @Test
    	  public void JsonTest1() throws JsonGenerationException, JsonMappingException, IOException{
    		User u=new User();
    	        u.setId(11);
    	        u.setName("风清扬");
    	        User u1=new User();
    	        u1.setId(12);
    	        u1.setName("小师妹");
    	        ArrayList<User> array=new ArrayList<User>();
    	        array.add(u);
    	        array.add(u1);
    	        ObjectMapper om=new ObjectMapper();
    		String strjson = om.writeValueAsString(array);
    		System.out.println(strjson);  
    	    }
    

      输出结果:

    [{"id":11,"name":"风清扬"},{"id":12,"name":"小师妹"}]
    

      对某个字段进行格式化

    @Test
    	public void JsonTest1() throws JsonGenerationException, JsonMappingException, IOException{
    			User u=new User();
    	        u.setId(11);
    	        u.setName("风清扬");
    	        User u1=new User();
    	        u1.setId(12);
    	        u1.setName("小师妹");
    	        ArrayList<User> array=new ArrayList<User>();
    	        array.add(u);
    	        array.add(u1);
    	        ObjectMapper om=new ObjectMapper();
    	        om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));//设置日期格式化器
    		String strjson = om.writeValueAsString(array);
    		System.out.println(strjson);  
    	}
    

      使用过滤器进行对字段进行过滤

        

        @Test
    	public void JsonTest1() throws JsonGenerationException, JsonMappingException, IOException{
    			User u=new User();
    	        u.setId(11);
    	        u.setName("风清扬");
    	        User u1=new User();
    	        u1.setId(12);
    	        u1.setName("小师妹");
    	        ArrayList<User> array=new ArrayList<User>();
    	        array.add(u);
    	        array.add(u1);
    	        ObjectMapper om=new ObjectMapper();
    	        //处理过滤属性
    	        	//只显示这个属性
    	        //[{"id":11},{"id":12}]
    	        FilterProvider f=new SimpleFilterProvider().addFilter("UserFilter",SimpleBeanPropertyFilter.filterOutAllExcept("id"));
    	        //[{"name":"风清扬"},{"name":"小师妹"}]  不包含这个属性
    	        //FilterProvider f=new SimpleFilterProvider().addFilter("UserFilter",SimpleBeanPropertyFilter.serializeAllExcept("id"));
    			
    	        om.setFilters(f);
    		String strjson = om.writeValueAsString(array);
    		System.out.println(strjson);  
    	}
    

      

  • 相关阅读:
    mongodb笔记一
    mysql的备份和恢复
    explain的type列
    Debian下apache2设置并发
    nginx基本调优
    c语言struct
    Centos 安装nginx + php + mysql
    Debian下系统启动时执行脚本
    centos5.5服务器基本篇
    分治法
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/json_java.html
Copyright © 2020-2023  润新知