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"}
原创粉丝点击