Java
来源:互联网 发布:网络游戏破解软件大全 编辑:程序博客网 时间:2024/06/08 19:53
JSON
什么是json
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
- JSON 是轻量级的文本数据交换格式
- JSON 独立于语言
- JSON 具有自我描述性,更易理解
JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
JSON语法
JSON语法规则
- 数据在键/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON对象
对象可以包含多个键/值对:
{"key01" : 0, "key02" : "0"}
实例
通过www.json.org,可以了解到有很多使用Java语言封装的对json构造和解析的工具。一般比较常用的json工具有FastJson、Gson、Jackson等。下面一一说明这三种构造解析工具如何使用。
实例代码中用到的JavaBean
public class DemoBean { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
FastJson
Java Bean转JSON对象
public JSONObject bean2Json(Object obj) { JSONObject jsonObj = (JSONObject) JSON.toJSON(obj); return jsonObj;}
示例代码
DemoBean bean = new DemoBean();bean.setId(3);bean.setName("bean2Json");JSONObject json = bean2Json(bean);System.out.println("id = " + json.getInteger("id"));System.out.println("name = " + json.getString("name"));
运行结果
id = 3name = bean2Json
JSON对象转JavaBean
public Object json2Bean(JSONObject json, Class<?> clazz) { Object bean = JSONObject.toJavaObject(json, clazz); return bean;}
示例代码
JSONObject json = new JSONObject();json.put("id", 1);json.put("name", "json2Bean");DemoBean bean = (DemoBean)json2Bean(json, DemoBean.class);System.out.println("id = " + bean.getId());System.out.println("name = " + bean.getName());
运行结果
id = 1name = json2Bean
JSON格式字符串转JavaBean
public Object str2Bean(String jsonStr, Class<?> clazz) { Object bean = JSON.parseObject(jsonStr, clazz); return bean;}
示例代码
String jsonStr = "{\"id\":105,\"name\":\"parseBean\"}";DemoBean bean = (DemoBean)str2Bean(jsonStr, DemoBean.class);System.out.println("id = " + bean.getId());System.out.println("name = " + bean.getName());
运行结果
id = 105name = parseBean
JavaBean转JSON格式字符串
public String bean2Str(Object bean) { String jsonStr = JSON.toJSONString(bean); return jsonStr;}
示例代码
DemoBean bean = new DemoBean();bean.setId(4);bean.setName("bean2Str");String jsonStr = bean2Str(bean);System.out.println(jsonStr);
运行结果
{"id":4,"name":"bean2Str"}
Gson
GSON是Google开发的Java API,用于转换Java对象和Json对象。
下载地址:
http://repo1.maven.org/maven2/com/google/code/gson/gson/
Java Bean转JSON对象
public JsonObject bean2Json(Object bean) { Gson gson = new Gson(); String jsonStr = gson.toJson(bean); JsonObject jsonObj = new JsonParser().parse(jsonStr).getAsJsonObject(); return jsonObj;}
示例代码
DemoBean bean = new DemoBean();bean.setId(3);bean.setName("bean2Json");JsonObject json = bean2Json(bean);System.out.println("id = " + json.get("id").getAsInt());System.out.println("name = " + json.get("name").getAsString());
运行结果
id = 3name = bean2Json
JSON对象转JavaBean
public Object json2Bean(JsonObject json, Class<?> clazz) { Gson gson = new Gson(); Object bean = gson.fromJson(json, clazz); return bean;}
示例代码
JSONObject json = new JSONObject();json.addProperty("id", 1);json.addProperty("name", "json2Bean");DemoBean bean = (DemoBean)json2Bean(json, DemoBean.class);System.out.println("id = " + bean.getId());System.out.println("name = " + bean.getName());
运行结果
id = 1name = json2Bean
JSON格式字符串转JavaBean
public Object str2Bean(String jsonStr, Class<?> clazz) { Gson gson = new Gson(); Object bean = gson.fromJson(jsonStr, clazz); return bean;}
示例代码
String jsonStr = "{\"id\":105,\"name\":\"parseBean\"}";DemoBean bean = (DemoBean)str2Bean(jsonStr, DemoBean.class);System.out.println("id = " + bean.getId());System.out.println("name = " + bean.getName());
运行结果
id = 105name = parseBean
JavaBean转JSON格式字符串
public String bean2Str(Object bean) { Gson gson = new Gson(); String jsonStr = gson.toJson(bean); return jsonStr;}
示例代码
DemoBean bean = new DemoBean();bean.setId(4);bean.setName("bean2Str");String jsonStr = bean2Str(bean);System.out.println(jsonStr);
运行结果
{"id":4,"name":"bean2Str"}
Jackson
JSON格式字符串转JavaBean
public Object str2Bean(String jsonStr, Class<?> clazz) { Object bean = null; try { ObjectMapper mapper = new ObjectMapper(); bean = mapper.readValue(jsonStr, clazz); } catch (IOException e) { e.printStackTrace(); } return bean;}
示例代码
String jsonStr = "{\"id\":105,\"name\":\"parseBean\"}";DemoBean bean = (DemoBean)str2Bean(jsonStr, DemoBean.class);System.out.println("id = " + bean.getId());System.out.println("name = " + bean.getName());
运行结果
id = 105name = parseBean
JavaBean转JSON格式字符串
public String bean2Str(Object bean) { String jsonStr = ""; try { ObjectMapper mapper = new ObjectMapper(); jsonStr = mapper.writeValueAsString(bean); } catch (JsonProcessingException e) { e.printStackTrace(); } return jsonStr;}
示例代码
DemoBean bean = new DemoBean();bean.setId(4);bean.setName("bean2Str");String jsonStr = bean2Str(bean);System.out.println(jsonStr);
运行结果
{"id":4,"name":"bean2Str"}
阅读全文
0 0
- java
- JAVA
- JAVA
- JAVA
- java
- Java
- Java
- JAVA:
- java
- java
- java
- java
- Java
- java
- java
- java
- JAVA?
- java
- windows 下安装nodejs
- Qt数据库事务操作
- Bounding-box_regression详解
- 移动端上拉加载demo
- 判断是否为平方数之和-LintCode
- Java
- 【小白】selenium入门(三)学习笔记
- 推荐系统重要会议和期刊
- Java实现红黑树
- angularJS 单击ng-click和双击ng-dblclick嵌套或者出现在同一元素 避免事件互相干扰方法
- NMEA-0183信息整理与分析
- CentOS7 ssh
- Xen复制虚拟机
- 解决org.xml.sax.SAXParseException:Content is not allowed in prolog