java json 对象操作_JSON的相关操作和与java对象的转化

JSON概述:

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

使用{}进行包含对象,可以使用[]包含{}对象的形式,对象里面也可以含有[]。

JSON实例:

{ "firstName":"John" , "lastName":"Doe" }

[

{ "firstName":"John" , "lastName":"Doe" },

{ "firstName":"Anna" ,

"lastName":"Smith" },

{ "firstName":"Peter" , "lastName":"Jones" }

]

JSON的获取:

对于{}花括号里面的获得由两种方式:

直接花括号的对象引用.键名(注意:键名不加双引号)

使用花括号对象的引用["键名"] (注意:键名加双引号)

对于中括号对象的获得方式是通过数组索引的方式获得

代码实现:

JESON的基本操作

alert(key+ " " + person[key]);//在这里获得的key是自带双引号的,所以只能使用数组的方式获得

}/** 对于{}花括号里面的获得由两种方式:

* 1.直接花括号的对象引用.键名

**/alert(person.name);/** 2.使用花括号对象的引用["键名"]

*

**/alert(person["age"]);/** 对于中括号对象的获得方式是通过数组索引的方式获得

**/let address= [{"河南": "郑州"},

{"湖北": "武汉"}]

alert(address[0].河南);

值得注意的是使用for in 遍历混的key的时候获得的key是自带“”双引号的。

java对象转JSON

我们可以利用工具将java对象转化成为JSON字符串,也可以将JSON字符串转化成为java对象,工具有很多我们使用jackson工具导入相关的jar包即可。

操作步骤:

导入jackson的相关jar包

创建jackson核心对象ObjectMapper

调用ObjectMapper对象的相关方法进行转换

java对象转换成jeson的三种方法

直接转化成jeson

转化成jeson之后写到指定文件中

转化成jeson然后以流的方式写入到文件或者其他的流中比如响应流中

代码实现:

ObjectMapper mapper = newObjectMapper();try{//1.直接转化成jeson

String jeson =mapper.writeValueAsString(person);

System.out.println(jeson);//2.转化成jeson之后写到指定文件中

mapper.writeValue(new File("E://a.txt"),person);//3.转化成jeson然后以流的方式写入到文件或者其他的流中比如响应流中

mapper.writeValue(new FileWriter("E://b.txt"),person);

}catch(Exception e) {

e.printStackTrace();

}

两个关于JSON的注解

@JsonIgnore :排除属性

@JsonFormat(pattern="yyyy-MM-dd") :属性值格式化(对日期的格式化)

代码演示:

packagecom.itheima.domain;importcom.fasterxml.jackson.annotation.JsonFormat;importcom.fasterxml.jackson.annotation.JsonIgnore;importjava.util.Date;public classPerson {privateString name;private intage;privateString gender;//@JsonIgnore 注解的作用是当转化json的时候忽略这个属性不进行转化这个属性

@JsonFormat(pattern = "yyyy-MM-dd")//注解的作用第当进行转换json是对这个属性进行相应的格式转化

privateDate birthday;publicDate getBirthday() {returnbirthday;

}public voidsetBirthday(Date birthday) {this.birthday =birthday;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}publicString getGender() {returngender;

}public voidsetGender(String gender) {this.gender =gender;

}

@OverridepublicString toString() {return "Person{" +

"name='" + name + '\'' +

", age=" + age +

", gender='" + gender + '\'' +

'}';

}

}

复杂java对象的转换:

List对象  :转换后的JSON形式是数组的形式

Map对象  :转换后的JSON形式是简单花括号对象的形式(一般使用Map制造需要的JSON)

代码实现:

/转化List集合成为数组/*String l = mapper.writeValueAsString(list);

System.out.println(l);*/

/** Map转化成为普通花括号对象

**/

/*Map map=new HashMap<>();

map.put("name","张三");

map.put("age","23");

map.put("gender","男");

String m = mapper.writeValueAsString(map);

System.out.println(m);*/

关于AJAX响应格式的设置:

服务器的响应的数据,在客户端使用时,要想当做JSON数据格式使用则必须进行相关的设置,方法有两种:

$.get();或者$.post();方法的最后一个参数type指定为“json”

在服务器端设置MIME类型:response.setContentType("application/json;charset=utf-8");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值