转换之前需要知道什么是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);
}

  

day30(对象转json(java))的更多相关文章

  1. json相关类库,java对象与json相互转换

    有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...

  2. java对象与json串互转

    1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSO ...

  3. 【JSON 注解】JSON循环引用2----JSON注解@JsonIgnoreProperties+JAVA关键字transient+后台对象与JSON数据的格式互相转化

    接着来说这个JSON循环引用的问题: 关于JSON格式的转化,其实关键就是这几个依赖: <!-- json --> <!-- 1号 --> <dependency> ...

  4. Jackson转换对象为json的时候报java.lang.stackoverflowerror

    无论在将一个对象转为json字符串的时候采用何种算法,如果你的对象的属性的类型不是基本类型或对应的引用类型,转换应该都不会就此结束,那么有一种方式可以导致这种转换陷入无限循环:将某个对象的属性设为对象 ...

  5. java对象与json对象间的相互转换

    工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...

  6. JSON-lib框架,JAVA对象与JSON、XML之间的相互转换

    Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象. 一. 准备工作 ...

  7. 使用jackson对Java对象与JSON字符串相互转换的一些总结

    本文为菠萝大象原创,如要转载请注明出处.http://www.blogjava.net/bolo 代码无真相,为了最简单的说明,我直接上代码. public class User { private  ...

  8. net.sf.json在处理json对象转换为普通java实体对象时的问题和解决方案

    我使用的net.sf.json是json-lib-2.4-jdk15.jar,把json对象转换为普通java实体对象时候有个问题,josn对象转换为java对象之后,json串里面的那几个小数点的值 ...

  9. java对象转json应clone,避免生成json串有问题

    今天因为一个java对象转json,搞了我一下午,在些记录一下: 是这样:我在strtuts2的action中调用services返回 Row: 26, 中国银行海鹰, 29, 东楼, 36, 1F ...

随机推荐

  1. java命令行调用本地文件协议hikvideoclient://

    最近在做一个视频项目,项目中需要通过调用海康本地协议打开视频播放器,起初尝试通过Process/ProcessBuilder无解,因为这个是调用本地应用程序的. 我要调用的是本地伪协议,最终通过一些研 ...

  2. netcore sqlserver linq contains生成的sql语句不是使用like而是charIndex

    在ef中使用linq调用了contains,结果怎么都查不到值,打开sqlserver profiler 发现生成的sql语句不是使用like...而是CharIndex 参考文档:https://s ...

  3. oracle 分页 where 三层

    查询[start,start+limit],包含start,包含start+limit,如start=21,limit=10结果就是21到30,包含21和30SELECT * FROM (SELECT ...

  4. 从django的序列化到rest-framework 序列化

    1.利用Django的view实现返回json数据 from django.views.generic import View from goods.models import Goods class ...

  5. JAVA动手动脑及课后作业

    1.查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 运行结果 true true false 原因 1)在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0, ...

  6. PAT 1039 到底买不买(20)(20 分)

    1039 到底买不买(20)(20 分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要 ...

  7. Latex基本用法

    空格 需要使用 \qquad,\quad,\,应该是占位符和变量之间需要有{}相隔. $$ C_{1} \qquad {C_2} $$ $$ C_{1} \quad {C_2} $$ $$ C_{1} ...

  8. Luogu 2173 [ZJOI2012]网络 - LCT

    Solution $LCT$ 直接上$QuQ$ 注意$cut$ 完 需要 $d[u + c * N]--$ 再  $link$,  不然会输出Error 1的哦 Code #include<cs ...

  9. Shortest Unsorted Continuous Subarray LT581

    Given an integer array, you need to find one continuous subarray that if you only sort this subarray ...

  10. jvm相关知识点

    1.hotspot虚拟机结构:类加载器.堆.栈.方法区.垃圾回收系统.执行引擎.本地方法栈.pc寄存器. 类加载器:负责将class文件从文件系统加载到方法区. 堆:存放对象的一块区域,所有线程共用. ...