转换之前需要知道什么是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. #define INVSQRT2 0.707106781 平方根倒数速算法

    转自 http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 源码下载地址:http://diducoder.com/sotr ...

  2. linux操作系统-设置静态ip

    在使用linux虚拟机的时候因为经常有关机的需求,然后重新开机后可能面临这上一次获取的ip被改变,在这里我分享一下在linux 下设置静态ip的经验 1.查看路由状态 [root@localhost ...

  3. opencv 学习总结 方法总结

    师者传道受业解惑也,图片识别是门学科,需要师者传教,才会较快解开谜团,解开困惑,没人引导,要学会图片识别,有点难度,因为其中的做法超出自己的想象范围. 大家都知道,在超出想象范围,或者从未想到的方式, ...

  4. git 本地仓库与远程仓库的连接

    在远程如github新建一个项目名称为blog, 本地项目为store,是一个laravel框架项目,首先用 git init初始化本目,然后用git remote add origin git@gi ...

  5. C# Contains 包含空字符串的问题

    一个基本的条件判断,之前没有遇到,这次遇到后,感觉真是这些年白写程序了. if(("1,2,3").Contains("")) { MessageBox.Sho ...

  6. (转)拉姆达表达式(Lambda Expressions) =>写法的涵义

      lambdaclass编译器 让我们先看一个简单的拉姆达表达式: x=>x/2 这个表达式的意思是:x为参数,对x进行相应的操作后的结果作为返回值. 通过这个拉姆达表达式,我们可以看到: 这 ...

  7. iOS.ARM-Assembly

    ARM Assembly for iOS with Xcode 0. Introduction 0.1 arm asm vs. arm64(ARMv8) asm AArch64: 0.2 __arm6 ...

  8. 如何搭建http服务仓库

    1.拷贝仓库repo-A文件到服务器/media/D: 2.通过createrepo_c 生成仓库rpm信息数据 cd repo-A createrepo . 3.chmod -R 775  repo ...

  9. HISAT2,StringTie,Ballgown处理转录组数据

    HISAT2,StringTie,Ballgown处理转录组数据 本文总阅读量次2017-05-26 HISAT2,StringTie,Ballgown处理转录组数据思路如下: 数据质控 将RNA-s ...

  10. BZOJ 2733 [HNOI2012]永无乡 - 启发式合并主席树

    Description 1: 查询一个集合内的K大值 2: 合并两个集合 Solution 启发式合并主席树板子 Code #include<cstdio> #include<cst ...