關于Json的總結

一、什么是Json?

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它使得人們很容易的進行閱讀和編寫。

同時也方便了機器進行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999

的一個子集。 JSON采用完全獨立于程序語言的文本格式,但是也使用了類C語言的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。

這些特性使JSON成為理想的數據交換語言。

Json的兩種結構

1、對象:對象在js中表示為“{}”括起來的內容,數據結構為 {key:value,key:value,...}的鍵值對的結構,在面向對象的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理解,取值方法為 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。

例如:var user = {"name":"Manas","gender":"Male","birthday":"1987-8-8"}

2、數組:數組在js中是中括號“[]”括起來的內容,數據結構為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。

例如:var userlist = [

{"user":{"name":"Manas","gender":"Male","birthday":"1987-8-8"}},

{"user":{"name":"Mohapatra","Male":"Female","birthday":"1987-7-7"}}

]

二、Json的用途

主要用于數據的傳輸,還可以作為程序的配置文件。

三、C#中操作Json

1、Json序列化

public string GetJsonString()

{

List products = new List(){

new Product(){Name="蘋果",Price=5.5},

new Product(){Name="橘子",Price=2.5},

new Product(){Name="干柿子",Price=16.00}

};

ProductList productlist = new ProductList();

productlist.GetProducts = products;

//return new JavaScriptSerializer().Serialize(productlist));

return JsonConvert.SerializeObject(productlist);

}

public class Product

{

public string Name { get; set; }

public double Price { get; set; }

}

public class ProductList

{

public List GetProducts { get; set; }

}

生成結果:{"GetProducts":[{"Name":"蘋果","Price":5.5},{"Name":"橘子","Price":2.5},{"Name":"柿子","Price":16}]}

2、Json反序列化

string json = @"{

'Name': 'Bad Boys',

'ReleaseDate': '1995-4-7T00:00:00',

'Genres': [

'Action',

'Comedy'

]

}";

Movie m = JsonConvert.DeserializeObject(json);

string name = m.Name; //name 為 Bad Boys

四、Json和Xml的比較

XML

1)應用廣泛,可擴展性強,被廣泛應用各種場合

2)讀取、解析沒有JSON快

3)可讀性強,可描述復雜結構

JSON

1)結構簡單,都是鍵值對。

2)讀取、解析速度快,很多語言支持

3)傳輸數據量小,傳輸速率大大提高

4)描述復雜結構能力較弱

JavaScript、PHP等原生支持,簡化了讀取解析。成為當前互聯網時代普遍應用的數據結構

歡迎關注我的公眾號(同步更新文章):DoNet技術分享平臺

閱讀原文

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272789.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272789.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272789.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 整數溢出檢測,Java如何處理整數下溢和溢出以及如何檢查它?

How does Java handle integer underflows and overflows?Leading on from that, how would you check/test that this is occurring?解決方案If it overflows, it goes back to the minimum value and continues from there. If it underflows, it goes back to the maximum…

console 程序隨系統啟動及隱藏當前程序窗口

應業務需求,程序需要與系統啟動而自動運行,故加入以下代碼,保存成 .bat文件 ,雙擊執行即可 reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v HuazhuPushRecord /t reg_sz /d "your…

Linq用法筆記

一、什么是Linq?LINQ即Language Integrated Query(語言集成查詢),LINQ是集成到C#和Visual Basic.NET這些語言中用于提供查詢數據能力的一個新特性。LINQ是一種用來進行數據訪問的編程模型,Linq可以用相同的語法訪問不同的數據源,比如xml、數…

用例圖練習

轉載于:https://www.cnblogs.com/fzuyzy/p/4925246.html

java excel row遍歷空_Java poi讀取,寫入Excel,處理row和cell可能為空的情況

首先需要導入包import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;然后寫方法&a…

JQuery常用選擇器總結

作為網站開發者來說,不可避免的需要和頁面打交道,很多時候都需要去操作一些頁面上的元素,掌握常用的Jquery選擇器是十分有必要的。現從網上整理一些常用的Jquery選擇器,希望能給大家帶來一些開發上的便利。一、基本選擇器&#xf…

java 常量 內存分配_Java內存分配之堆、棧和常量池

寄存器:最快的存儲區,位于不同于其他存儲區的地方——處理器內部。寄存器的數量極其有限,所以寄存器由編譯器根據需求 進行分配。你不能直接控制,也不能在程序中感覺到寄存器存在的任何跡象。棧:存放基本類型的數據和對…

三種SQLServer分頁查詢語句筆記

作為程序員來說,與數據庫打交道是十分頻繁的分頁查詢是一個開發者必須掌握的基本知識點,目前整理了下面三種SQLServer分頁查詢語句的寫法,僅供參考。一、Top Not IN 方式(查詢靠前的數據較快)語法格式:sele…

sqlserver2008r2安裝

轉載于:https://www.cnblogs.com/sprinng/p/4932739.html

JQuery七個常犯的錯誤

1、 亂用選擇器JQuery選擇器調用代價很大,反復調用效率更低。應采用緩存對象的方法或采用鏈式調用的方式。//錯誤的寫法$("#button").click(function(){ $(#list li).addClass(strong); $(#list li).css(color,red);});//正確的寫法$("#button…

java流讀取xml_使用FileInputStream(用于Java)讀取XML文件?

這是交易.對于我的項目,我必須使用Java和XStream對隨機樹進行序列化和反序列化.我的老師制作了Tree / RandomTree算法,所以我不必擔心.我不知道該怎么做是這樣的:我使用FileInputStream來讀/寫我序列化和反序列化的xml文件,但是當我反序列化時,我不知道用于讀取文件…

后臺尋路系統的大體思路與流程

總的思路就是: 1, 通過前臺unity的navigation的的接口: 獲得頂點和三角形集合數據 2, 將前臺的mesh數據轉換成標準的obj格式數據 3. 強obj mesh數據經過一系列轉換和優化, 生成recastnavigation插件尋路模塊detour需要的導航數據 故制作了工具MakeNavmeshData生成detour需要的…

關于WCF、WebAPI、WCFREST、WebService之間的區別總結

在.net平臺下,有大量的技術讓你創建一個HTTP服務,像Web Service,WCF,現在又出了Web API。在.net平臺下,你有很多的選擇來構建一個HTTP Services。我分享一下我對Web Service、WCF以及Web API的看法。一、Web Service1、…

java 程序是由什么組成的 java_從零開始的JAVA -2. java程序的構成及命名規則

1.public classYD2.{3. public static voidmain (string args[ ])4. {5. System.out.println("我是一名學習JAVA的新人!");6. }7.}第一行 public 代表這是一個公共類(可省略) class 是聲明一個類,在他后面的YD 就是類名(類名可以隨意寫)第二行…

你應該知道的jQuery技巧【收藏】

jQuery的存在,讓學習前端開發的人感到前端越來越容易入門了,用簡單的幾行代碼就可以實現需求,但是,你真的會用jQuery么,當代碼運行 后無法看到自己預期的效果,是不是覺得jQuery出了問題,其實&am…

LINQ表達式用法整理

收集一些Linq表達式中的一些比較常用的寫法,希望能給大家工作當中帶來一些便利。1. Where子句條件過濾結果集型(集合數據使用這種,譬如數組、列表數據,同樣適用于Datatable等多列數據集)類SQL語句的寫法,對…

Eclipse is running in a JRE, but a JDK is required 解決方法(轉)

轉自:http://comeonbabye.iteye.com/blog/1186239 安裝Maven后每次啟動出現警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not work when importing projects or updating source folders. 分兩步解決問題: 1. 檢查Eclipse正…

java線程歸并排序_Java-歸并排序 - FeanLau的個人空間 - OSCHINA - 中文開源技術交流社區...

public class MergeSort {static int number0;public static void main(String[] args) {int[] a {26, 5, 98, 108, 28, 99, 100, 56, 34, 1 };printArray("排序前:",a);MergeSort(a);printArray("排序后:",a);}private static voi…

收集一些優秀的DoNet開源項目

Paste_Image.pngJson.NEThttp://json.codeplex.com/ Json.Net是一個讀寫Json效率比較高的.Net框架.Json.Net 使得在.Net環境下使用Json更加簡單。通過Linq To JSON可以快速的讀寫Json,通過JsonSerializer可以序列化你的.Net對象。讓你輕松實現.Net中所有類型(對象,基…

git初探

1 Linux下Git和GitHub環境的搭建 第一步: 安裝Git,使用命令 “sudo apt-get install git” 第二步: 到GitHub上創建GitHub帳號 第三步: 生成ssh key,使用命令 “ssh-keygen -t rsa -C "your_emailyouremail.com&q…