1. 程式人生 > >Spark項目之電商用戶行為分析大數據平臺之(十一)JSON及FASTJSON

Spark項目之電商用戶行為分析大數據平臺之(十一)JSON及FASTJSON

附加 處理 用戶行為分析 基於 大數據平臺 base IT 為什麽 init

一、概述

JSON的全稱是”JavaScript Object Notation”,意思是JavaScript對象表示法,它是一種基於文本,獨立於語言的輕量級數據交換格式。XML也是一種數據交換格式,為什麽沒 有選擇XML呢?因為XML雖然可以作為跨平臺的數據交換格式,但是在JS(JavaScript的簡寫)中處理XML非常不方便,同時XML標記比數據 多,增加了交換產生的流量,而JSON沒有附加的任何標記,在JS中可作為對象處理,所以我們更傾向於選擇JSON來交換數據。這篇文章主要從以下幾個方 面來說明JSON。

二、JSON的結構

2.1 簡單值

簡單值使用與javascript相同的語法,可以在JSON中表示字符串、數值、布爾值和null

字符串必須使用雙引號表示,不能使用單引號。數值必須以十進制表示,且不能使用NaN和Infinity

[註意]JSON不支持javascript中的特殊值undefined

//合格的簡單值
5
"hello world"
true
null
//不合格的簡單值
+0x1
hello world
undefined
NaN
Infinity

2.2 對象

對象作為一種復雜數據類型,表示的是一組有序的鍵值對兒。而每個鍵值對兒中的值可以是簡單值,也可以是復雜數據類型的值(其中關鍵字是字符串,而值可以是字符串,數值,true,false,null,對象或數組)

與javascript的對象字面量相比,JSON有三個不同的地方

  1、JSON沒有變量的概念

  2、JSON中,對象的鍵名必須放在雙引號裏面

  3、因為JSON不是javascript語句,所以沒有末尾的分號

  [註意]同一個對象中不應該出現兩個同名屬性

//合格的對象
{
    "name":"huochai",
    "age":29,
    "school":{
        "name":"diankeyuan",
        "location":"beijing"
    }
}
//不合格的對象
{ name: "張三"
, age: 32 }//屬性名必須使用雙引號 {};//不需要末尾的分號 { "birthday": new Date(Fri, 26 Aug 2011 07:13:10 GMT), "getName": function() { return this.name; } } // 不能使用函數和日期對象

2.3 數組

數組也是一種復雜數據類型,表示一組有序的值的列表,可以通過數值索引來訪問其中的值。數組的值也可以是任意類型——簡單值、對象或數組

JSON數組也沒有變量和分號,把數組和對象結合起來,可以構成更復雜的數據集合

[註意]數組或對象最後一個成員的後面,不能加逗號

[
    {
        key1:value1,
        key2:value2 
    },
    {
         key3:value3,
         key4:value4   
    }
]

三、JSON詳解

https://www.cnblogs.com/passer00/p/6088925.html

四、FastJson

https://www.cnblogs.com/cdf-opensource-007/p/7106018.html

Spark項目之電商用戶行為分析大數據平臺之(十一)JSON及FASTJSON