JSON解析

什么是JSON

JSON:
JavaScript Object Notation JS 对象简谱 , 是一种轻量级的数据交换格式
类似于XML, 是一种数据交换格式,相比之下,它比XML表达起来更简单。虽然它源自于JavaScript,但是 只是一种数据格式,可以用于任何编程语言

JSON的对象形式

JSON的规则很简单: 对象是一个无序的 “ ‘名称/值’ 对” 集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 

 js:

    var b = new Object();
    b.name = "张三 ";
    b.info = " 吃饭 ";
XML:
      <book>
             <name> 张三 </name>
              <info> 吃饭 </info>
      </book>
JSON:
         {
             "name":"张三 ",
             "info":" 吃饭 "

         }

一个对象 , 由一个大括号表示 . 括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为 , 大括号中 , 包含的是一个个的键值对 .)
格式 :
       键与值之间使用冒号连接 , 多个键值对之间使用逗号分隔 .
       键值对的键 应使用引号引住 ( 通常 Java 解析时 , 键不使用引号会报错 . JS 能正确解析.)
       键值对的值 , 可以是 JS 中的任意类型的数据

JSON的数组格式

JSON 格式中可以与对象互相嵌套 [元素 1, 元素 2...]
{
      "name" : " 张三 " ,
      "age" : 99 ,
      "pengyou" :[ " 李四 " , " 王二 " , " 麻子 " ,{
                       "name" : " 野马老师 " ,
                       "info" : " 像匹野马一样狂奔在技术钻研的道路上 "
                  }],
      "dd" :{
         "name" : " 大长刀 " ,
         "length" : "40m"
       }
}

 

JSON解析

Java 中的对象 快速的转换为 JSON 格式的字符串 .
JSON 格式的字符串 , 转换为 Java 的对象 .

传统模式

生成JSON字符串

//生成JSON字符串

public static String createJsonString(String key, Object value) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put(key, value);
        return jsonObject.toString();

}

Gson

引入Gson    jar包

初始版本2008年5月22日
最新版本(稳定版本)2.2.4/2013年5月13日;
编程语言Java
操作平台各种平台
许可协议Apache License 2.0
官方网站http://code.google.com/p/google-gson/
下载地址http://code.google.com/p/google-gson/downloads/list
GSON帮助文档http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html

生成JSON字符串

import com.google.gson.Gson;
public class JsonUtils {
    public static String createJsonObject(Object obj) {
        Gson gson = new Gson();
        String str = gson.toJson(obj);
        return str;
    }
}

将JSON字符串转化为对象

在需要转换 Java 对象的位置 , 编写如下代码 :
对象 = new Gson (). fromJson ( JSON 字符串 , 对象类型 . class );
 String json = "{\"id\":1,\"name\":\"金苹果\",\"info\":\"嘿\",\"price\":198.0}";
 Book book = new Gson().fromJson(json, Book.class); 
 System.out.println(book);

将对象转化为JSON字符串

在需要转换 JSON 字符串的位置编写如下代码即可 :
String json = new Gson (). toJSON ( 要转换的对象 );
Book b = BookDao.find(); 
String json = new Gson().toJson(b); 
System.out.println(json);

 FastJson

引入fastJson jar 包

网上都可找到这边就不在赘述

 

生成JSON字符串

import com.google.gson.Gson;
public class JsonUtils {
    public static String createJsonObject(Object obj) {
        Gson gson = new Gson();
        String str = gson.toJson(obj);
        return str;
    }
}

将JSON字符串转化为对象

在需要转换 Java 对象的位置 , 编写如下代码 :
类型 对象名 = JSON . parseObject ( JSON 字符串 , 类型 . class );
或   List < 类型 > list = JSON . parseArray ( JSON 字符串 , 类型 . class );
String json = "{\"id\":1,\"name\":\"金苹果\",\"info\":\"嘿\",\"price\":198.0}"; 
Book book = JSON.parseObject(json, Book.class); 
System.out.println(book);
 public static  List getPersonList(String jsonstring, Class cls) {
        List list = new ArrayList();
        try {
            list = JSON.parseArray(jsonstring, cls);
        } catch (Exception e) {
            // TODO: handle exception
        }
        return list;
    }

 

将对象转化为JSON字符串

在需要转换 JSON 字符串的位置编写如下代码即可 :
String json = JSON . toJSONString  ( 要转换的对象 );
Book b = BookDao.find(); 
String json=JSON.toJSONString(b);
System.out.println(json);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值