Java-数据交换格式-JSON快速上手
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 这些特性使JSON成为理想的数据交换语言
JSON的结构
结构一:
“名称/值”对的集合(A collection of name/value pairs)
示例:var json = {“name”:”Jack”,”age”:90,”Marray”:true}
结构二:
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)
数组是值(value)的有序集合
{a,b,c}
导入JSON相关包
如果在IDEA导完包后无法正常使用请重启IDEA
应用示例
将map转换成json格式的字符串
package com;
import net.sf.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class testJson {
public static void main(String[] args) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","张三");
map.put("age",12);
map.put("address","深圳");
//map转换成JSON对象
JSONObject obj = JSONObject.fromObject(map);
//把JSON对象转换成字符串
String result = obj.toString();
System.out.println(result);
}
}
{"address":"深圳","age":12,"name":"张三"}
JSON还支持对bean(实体类)做出转换,主要依据bean的属性
JSON配置对象
JsonConfig是JSON配置对象,它可以
过滤属性:
package com;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import java.util.HashMap;
import java.util.Map;
public class testJson {
public static void main(String[] args) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","张三");
map.put("age",12);
map.put("address","深圳");
//创建配置对象
JsonConfig jc = new JsonConfig();
//过滤目标属性
jc.setExcludes(new String[]{"name"});
//map转换成JSON对象
JSONObject obj = JSONObject.fromObject(map,jc);
//把JSON对象转换成字符串
String result = obj.toString();
System.out.println(result);
}
}
结果为{"address":"深圳","age":12}
JSON字符串转成Bean
JSON字符串可以转换成属性与之对应的对象
现有字符串如下
String str = "{\"address\":\"深圳\",\"age\":12,\"name\":\"张三\"}" ;
实体类(Bean)如下
package com;
public class Person {
String name ;
int age ;
String address ;
public Person(){
}
public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}
注意:相关类的默认构造器一定要定义出来
转换代码:
package com;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import java.util.HashMap;
import java.util.Map;
public class testJson {
public static void main(String[] args) {
String str = "{\"address\":\"深圳\",\"age\":12,\"name\":\"张三\"}" ;
//创建配置对象
JsonConfig jc = new JsonConfig();
//str转换成JSON对象
JSONObject obj = JSONObject.fromObject(str) ;
//把JSON对象转换成bean
Person p = (Person) JSONObject.toBean(obj,Person.class);
System.out.println(p);
}
}
结果:
Person{name='张三', age=12, address='深圳'}
其实,可以和JSON互转的东西有很多,思路大多一致,这里就不一一拓展了