成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JSON入門看這一篇就夠了

gplane / 3234人閱讀

摘要:采用完全獨(dú)立于任何程序語言的文本格式,使成為理想的數(shù)據(jù)交換語言為什么需要提到,我們就應(yīng)該和來進(jìn)行對比。也是一種存儲(chǔ)和交換文本信息的手段。那么好在哪里呢比更小更快,更易解析。使用的時(shí)候,也支持將轉(zhuǎn)成但是,我們不一定使用框架來做開發(fā)呀。

什么是JSON

JSON:JavaScript Object Notation 【JavaScript 對象表示法】

JSON 是存儲(chǔ)和交換文本信息的語法。類似 XML。

JSON采用完全獨(dú)立于任何程序語言的文本格式,使JSON成為理想的數(shù)據(jù)交換語言S

為什么需要JSON

提到JSON,我們就應(yīng)該和XML來進(jìn)行對比。XML也是一種存儲(chǔ)和交換文本信息的手段。那么JSON好在哪里呢??

JSON 比 XML 更小、更快,更易解析。

javaScript原生支持JSON,解析速度會(huì)很快

XML解析成DOM對象的時(shí)候,瀏覽器【IE和fireFox】會(huì)有差異

使用JSON會(huì)更簡單

更加容易創(chuàng)建JavaScript對象

var p = {"city":["北京","上海","廣州","深圳"]};
for(var i=0;i");
}
JSON語法

客戶端與服務(wù)端的交互數(shù)據(jù)無非就是兩種

數(shù)組

對象

于是乎,JSON所表示的數(shù)據(jù)要么就是對象,要么就是數(shù)據(jù)

JSON語法是javaScript語法的子集,javaScript用[]中括號(hào)來表示數(shù)組,用{}大括號(hào)來表示對象,JSON亦是如此

JSON數(shù)組:
    var employees = [
    { "firstName":"Bill" , "lastName":"Gates" },
    { "firstName":"George" , "lastName":"Bush" },
    { "firstName":"Thomas" , "lastName": "Carter" }
    ];
JSON對象
        var obj = {

            age: 20,
            str: "zhongfucheng",
            method: function () {
                alert("我愛學(xué)習(xí)");
            }

        };

當(dāng)然啦,數(shù)組可以包含對象,在對象中也可以包含數(shù)組

解析JSON

javaScript原生支持JSON的,我們可以使用eval()函數(shù)來解析JSON,把JSON文本數(shù)據(jù)轉(zhuǎn)換成一個(gè)JavaScript對象。

        function test() {
            //在寫JOSN的時(shí)候,記得把帶上逗號(hào)
            var txt = "{a:123," +
                    "b:"zhongfucheng"}";

            //使用eval解析JSON字符串,需要增添()
            var aa = eval("(" + txt + ")");
            alert(aa);

        }

效果

不用框架時(shí)將JavaBean轉(zhuǎn)成JSON

使用Strus2的時(shí)候,Struts2自帶了組件能夠讓JavaBean對象、集合轉(zhuǎn)成是JSON,不用我們自己拼接...這是非常方便的。

使用SpringMVC的時(shí)候,SpringMVC也支持將JavaBean轉(zhuǎn)成JSON

但是,我們不一定使用框架來做開發(fā)呀。因此,我們還得學(xué)習(xí)使用第三方庫來將JavaBean對象、集合轉(zhuǎn)成JSON

導(dǎo)入開發(fā)包

commons-io-2.0.1.jar

commons-lang-2.5.jar

commons-collections-3.1.jar

commons-beanutils-1.7.0.jar

ezmorph-1.0.3.jar

json-lib-2.1-jdk15.jar

事例代碼
package cn.itcast.javaee.js.bean2json;

import net.sf.json.JSONArray;

import java.util.*;

/**
 * 使用第三方工具,將JavaBean對象/List或Set或Map對象轉(zhuǎn)成JSON 
 * @author AdminTC
 */
public class TestBean2Json {
    private static void javabean2json() {
        City city = new City(1,"廣州");
        JSONArray jSONArray = JSONArray.fromObject(city);
        String jsonJAVA = jSONArray.toString();
        System.out.println(jsonJAVA);
        //[{"id":1,"name":"廣州"}]
    }
    private static void list2json() {
        List cityList = new ArrayList();
        cityList.add(new City(1,"廣州"));
        cityList.add(new City(2,"珠海"));
        JSONArray jSONArray = JSONArray.fromObject(cityList);
        String jsonJAVA = jSONArray.toString();
        System.out.println(jsonJAVA);
        //[{"id":1,"name":"廣州"},{"id":2,"name":"珠海"}]
    }
    private static void set2json() {
        Set citySet = new LinkedHashSet();
        citySet.add(new City(1,"廣州"));
        citySet.add(new City(2,"珠海"));
        JSONArray jSONArray = JSONArray.fromObject(citySet);
        String jsonJAVA = jSONArray.toString();
        System.out.println(jsonJAVA);
        //[{"id":1,"name":"廣州"},{"id":2,"name":"珠海"}]
    }
    private static void javabeanlist2json() {
        List cityList = new ArrayList();
        cityList.add(new City(1,"中山"));
        cityList.add(new City(2,"佛山"));
        Province province = new Province(1,"廣東",cityList);
        
        JSONArray jSONArray = JSONArray.fromObject(province);
        String jsonJAVA = jSONArray.toString();
        System.out.println(jsonJAVA);
        /*
          [
             {
              "id":1,
              "name":"廣東"
              "cityList":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}],
             }
          ]
          */
    }
    private static void map2json() {
        
        List cityList = new ArrayList();
        cityList.add(new City(1,"中山"));
        cityList.add(new City(2,"佛山"));
        
        Map map = new LinkedHashMap();
        map.put("total",cityList.size());//表示集合的長度
        map.put("rows",cityList);//rows表示集合
        
        JSONArray jSONArray = JSONArray.fromObject(map);
        String jsonJAVA = jSONArray.toString();
        System.out.println(jsonJAVA);
        //[{"total":2,"rows":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}]}]
        
        jsonJAVA = jsonJAVA.substring(1,jsonJAVA.length()-1);
        System.out.println(jsonJAVA);
    }
    
}

把要解析成JSON 的javaBena對象、集合放進(jìn)下面這段代碼即可!

        JSONArray jSONArray = JSONArray.fromObject(map);

無論放進(jìn)去什么,返回的都是數(shù)組

總結(jié)

如果文章有錯(cuò)的地方歡迎指正,大家互相交流。習(xí)慣在微信看技術(shù)文章的同學(xué),可以關(guān)注微信公眾號(hào):Java3y

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71002.html

相關(guān)文章

  • Scrapy詳解 爬蟲框架入門看這一篇夠了!

    摘要:目錄前言架構(gòu)安裝第一個(gè)爬蟲爬取有道翻譯創(chuàng)建項(xiàng)目創(chuàng)建創(chuàng)建解析運(yùn)行爬蟲爬取單詞釋義下載單詞語音文件前言學(xué)習(xí)有一段時(shí)間了,當(dāng)時(shí)想要獲取一下百度漢字的解析,又不想一個(gè)個(gè)漢字去搜,復(fù)制粘貼太費(fèi)勁,考慮到爬蟲的便利性,這篇文章是介紹一個(gè)爬蟲框架, 目錄 前言 架構(gòu) 安裝 第一個(gè)爬蟲:爬取有道翻譯 創(chuàng)建項(xiàng)目 創(chuàng)建Item 創(chuàng)建Spider 解析 運(yùn)行爬蟲-爬取單詞釋義 下載單詞語音文件 ...

    lordharrd 評論0 收藏0
  • Python字符串的格式化,看這一篇夠了

    摘要:相信很多人在格式化字符串的時(shí)候都用的語法,提出一種更先進(jìn)的格式化方法并成為的標(biāo)準(zhǔn)用來替換舊的格式化語法,從開始已經(jīng)實(shí)現(xiàn)了這一方法其它解釋器未考證。 showImg(https://segmentfault.com/img/remote/1460000018650325); 相信很多人在格式化字符串的時(shí)候都用%s % v的語法,PEP 3101 提出一種更先進(jìn)的格式化方法 str.for...

    BDEEFE 評論0 收藏0
  • 過濾器入門看這一篇夠了

    摘要:我們很容易發(fā)現(xiàn),過濾器可以比喻成一張濾網(wǎng)。這究竟是怎么回事啊我們可以這樣理解過濾器不單單只有一個(gè),那么我們怎么管理這些過濾器呢在中就使用了鏈?zhǔn)浇Y(jié)構(gòu)。第一種方式在文件中配置用于注冊過濾器用于為過濾器指定一個(gè)名字,該元素的內(nèi)容不能為空。 什么是過濾器 過濾器是Servlet的高級(jí)特性之一,也別把它想得那么高深,只不過是實(shí)現(xiàn)Filter接口的Java類罷了! 首先,我們來看看過濾器究竟Web...

    yy13818512006 評論0 收藏0
  • WorkManager從入門到實(shí)踐,有這一篇夠了

    摘要:前言上一次我們對的應(yīng)用進(jìn)行了一次全面的分析,這一次我們來聊聊。 showImg(https://segmentfault.com/img/remote/1460000020077803?w=1280&h=853); 前言 上一次我們對Paging的應(yīng)用進(jìn)行了一次全面的分析,這一次我們來聊聊WorkManager。 如果你對Paging還未了解,推薦閱讀這篇文章: Paging在Recy...

    bingchen 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<