精华内容
下载资源
问答
  • 什么是JSON

    2019-10-29 17:34:55
    什么是JSON 一、什么是json? json的全称为:JavaScript Object Notation,是一种轻量级的数据交互格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示...

    什么是JSON

    一、什么是json?

            json的全称为:JavaScript Object Notation,是一种轻量级的数据交互格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。【以上来自于百度百科】

           简单来说:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。
    类似于:

           国际通用语言-英语
           中国56个民族不同地区的通用语言-普通话。
           但真要说json到底是什么,以及json的作用,我们总是难以描述,下面我将从各个方面来进行说明:

    二、与javascript的关系

           相信很多程序员只要一提到json总会想到js,因为json不仅含有js的名字,其格式也与js中对象(object)的格式并无一二。

           这里我们要进行一个说明,首先json是基于ECMAScript语法,但这并不意味着json必须在js中使用,或者必须要产生什么联系,json在js中的处理也并没有比其他语言占有更多优势。只是因为语法相似,而使得js开发者能更快的上手json而已。

           事实上几乎所有编程语言中都有对json数据转换的支持

           1、js中,json与对象的转换JSON.parse()/JSON.stringify();
           2、php中,json与数组的转换json_encode()/json_decode();
           3、java中,json与对象的转换fromJson()/toJson();
           4、python中,json与对象的转换json.dumps()/json.loads();

    三、语法格式

           那么json的语法格式到底是怎样的呢?我们先来看一段json数据:

    {"name":"admin","age":18}
    

           这就是一种最简单的json,如果有学过js的开发者是不是发现json的语法与js中object的语法几乎相同。

           json是一种纯字符数据,不属于编程语言
           json的语法与js中object的语法几乎一致(下一部分说明不同)

           1、json数据以键值对形式存在,多个键值对之间用逗号,隔开,键值对的键和值之间用冒号:连接
           2、json数据在js对象的基础上做了严格化
           3、json数据中的键值对可以使用编程语言中所谓的关键字(*见注意事项)
           4、json的数据可以用花括号{}或中括号[]包裹,对应js中的object和array

    四、注意事项

           为什么说几乎相同,而不是完全相同呢?接下来我们要说的就是json与js中对象的不同点,也是json严格要求的部分:

           json的键值对的键部分,必须用双引号"包裹,单引号都不行(所以如果在键中出现了关键字,也被字符化了),而js中对象没有强制要求(所以在键中不允许出现关键字)
           json的键值对的值部分,不允许出现函数function,undefined,NaN,但是可以有null,js中对象的值中可以出现
           json数据结束后,不允许出现没有意义的逗号,如:{"name":"admin","age":18,}
           注意看数据结尾部分18的后面的逗号,不允许出现.

    五、总结

    所以,json数据的可以是:

    {"name":"admin","age":18}
    

    也可以是:

    ["hello",3.1415,"json"]
    

    还可以是:

    [{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":20}]
    

    不能是:(key没有双引号)

    {"name":"admin",age:18}
    

    不能是:(无意义的逗号)

    {"name":"admin","age":18,}
    

    不能是:(不允许出现函数)

    {"name":"admin","age":18,"show":function()()}
    

    不能是:(不允许出现undefined)

    {"name":"admin","age":18,"show":undefined}
    

    不能是:(不允许出现NaN)

    {"name":"admin","age":18,"strong":NaN}
    

    不能是:(无意义的逗号)

    ["hello",3.1415,"json",]
    

    不能是:(无意义的逗号)

    [{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":20},]
    

           以上内容,希望能对以后使用json有所帮助。

           其实作为通用数据,xml也是一种不错的选择,但是随着json的出现,xml的使用场景正慢慢被json蚕食,相对来说json在某些方面下的体现还是比xml稍具优势,后期可再开一篇文档说明json和xml的区别。

    结语

     如有不全或错误,欢迎留言指出,谢谢支持……^ _ ^欢迎评论转载
    
    展开全文
  • 什么是json

    千次阅读 2014-01-14 10:11:24
    json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构 1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,......

    百度百科解释:

    json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
    1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
    2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
    经过对象、数组2种结构就可以组合成复杂的数据结构了
    下面的不是json字符窜:
    1.var testJson = '[a,b]';
    var ee = $.parseJSON(testJson);----error Unexpected token a
    console.log(typeof(ee));
    2.var testJson = '[01,02]';
    var ee = $.parseJSON(testJson);----error Unexpected number
    console.log(typeof(ee));
    3.var testJson = '[1,2]';
    var ee = $.parseJSON(testJson);
    console.log(typeof(ee));----right
    4.var json = '{a:1,b:2}';
    var ee = $.parseJSON(json);-----error Unexpected token a ------- key only can be string
    console.log(typeof(ee));
             5.var json = '{"3":1,"4":2}';
    var ee = $.parseJSON(json);
    console.log(typeof(ee));----right

             6.java List  toString() 和json

       testList.add("01");
    testList.add("02");
    System.out.println(testList.toString());------输出是[01,02] 返回到前台转json的时候会报错

    1.Gson gson = new Gson();
    String test = gson.toJson(testList);

    2.JSONArray jsonArray = JSONArray.fromObject(testList);
    System.out.println(jsonArray.toString());

    上面两种输出时["01","02"]----这是不会报错的json(不会再前台报错的json)


    7json对象中只能用双引号(为了很多语言统一),由于在js中定义字符串的时候双引号和单引号都可以,所以下面两种形式都是json字符串

    Var strJSON = “{\“Area\”[{\“AreaId\”:\”123\”},{\“AreaId\”:\”345\”}]}”,---json字符串

    Var strJSON = ‘{“Area”[{“AreaId”:”123”},{“AreaId”:”345”}]}’,------json字符串


    var jsonObject = {"aa":"bb"};---这是json对象

    var jsonObject = {'cc':'dd'};---这是定义js对象


    注意:var strJSON = "{'aa':'33'}";------这个不是json字符串,在转json的时候会报错



    展开全文
  • 前后端角度看接口(什么是json)?

    万次阅读 多人点赞 2020-01-01 16:54:25
    什么是JSON

    什么是JSON?

    JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    json前两个字就是js,说明其与js必然存在一些联系,其实json可以理解为盛装js数据的一个容器(不是只能装js的,不要扣这些),说白了,就是储存数据的一个小玩意儿。其实如果你身边有搞前端的同学,不难发现,他们会经常说接口、报文,对于一个后端小白的我来说,也很想明白这究竟是个什么东东,最近工作一直做前后端开发,所以跟json结下了缘。

    前端中json大致是形如这个样子的,就是冒号左边一个名字(键),右边是具体的值(值),其实就是键值对。。是不是很简单,如果不简单也不会这么火了↓↓↓

    var json = {"xxx":"xxx"};
    

    右边可以是一个数字,可以是一个对象,可以是字符串,可以是一个数组,可以是一个json(套娃),我给大家举个例子大家就明白了,既然是容器,必然要有大的,有小的,啥都能装

    装数字:

    var feeInfoList = {"num":11};
    

    通过feeInfoList.num就可以拿到num对应的值:11,很简单吧?
    装字符串:

    var feeInfoList = {"name":"小斌哥"};
    

    通过feeInfoList.name,就能拿到带双引号的"小斌哥"啦~
    装对象:

    var 小斌哥= {"name":"小斌哥", "age":21, "sex":"爷们"};
    

    小斌哥这个对象里面包含姓名、年龄和性别,多个数据可以通过逗号隔开,因此,小斌哥这个对象就生成了!!
    装数组

    var array = {"array":[
    	{
    		"name":"小斌哥",
    		"sex":"爷们",
    		"age":21
    	},
    	{
    		"name":"貂蝉",
    		"sex":"美女",
    		"age":18
    	}
    ]};
    

    直接看可能比较懵,但是仔细看,键是"array",值就是后面的一大坨,对吗?那一大坨拆开看,是不是就是一个个的对象,对象之间用逗号隔开了,对象里面有姓名、性别和年龄,每一个属性都是用键值对装的,并且用逗号隔开,是不是很容易呢,其实如果别人给你一大堆报文,可以用utools(一个软件),直接复制进去,就可以清楚的看到json格式了,很方便~
    装json:

    var json = {"json":{"json":{
    			"json":11
    		}
    	}
    }
    

    哈哈,所谓套娃,就是可以在值那里一直用json,所以想拿到11,就需要通过:json.json.json.json,就能取到11了,不过这只是一个演示,除非真的有这样的需求,要不然还是不要这么玩儿,他毕竟只是一个容器,以盛装数据并且简洁易懂为主~

    为什么需要JSON?

    等到去了公司做前后端分离的项目的时候,大家会发现前端与后端交互大部分都是接口(其实就是用json装的一些数据),举个栗子,用户在浏览器输入了用户名和密码要登录,这个输入的用户名和密码肯定会发到后台,后台进行一系列的处理并且给前台反馈结果,画个图就是这样的:
    在这里插入图片描述
    总之前后端交互就是通过json报文,可以联想一下最开始学javaWeb的时候我们是怎么进行前后端交互的:

    	String name = request.getParameter("name");
    	String pwd = request.getParameter("pwd");
    

    在这里插入图片描述
    有没有引起你的某种回忆,哈哈~
    为什么不建议用servlet进行接收前端的数据呢?一个是负载压力大,后端成了爹了,啥都要管,权重非常高,你每次接收前台的数据都需要初始化加载servlet各种乱七八糟的东西,之后才能进行处理;第二是耦合太高,等你花了半天劲写完了代码,需求发生变更,你要改controller层、dao层、service层,该改的不该改的你都得改,体验过的童鞋麻烦点个赞。。

    总结

    大家可以看到,通过json,非常方便快捷地把一些复杂的对象和数据进行发送。每个公司肯定都对前端的ajax进行了封装,所以不需要每次都

     $(document).ready(function(){  
            var saveDataAry=[];  
            var data1={"userName":"zhangsan","address":"bj"};  
            var data2={"userName":"lisi","address":"nj"};  
            saveDataAry.push(data1);  
            saveDataAry.push(data2);         
            $.ajax({ 
                type:"POST", 
                url:"userInfo/userUpd", 
                dataType:"json",      
                contentType:"application/json",               
                data:JSON.stringify(saveData), 
                success:function(data){ 
     				...	...
                } 
             }); 
        });  
    

    使用起来也非常的方便~
    另外阿里巴巴有一个fastjson,可以非常快速地把json序列化和反序列化:

    String text = JSON.toJSONString(obj); //序列化
    VO vo = JSON.parseObject("{...}", VO.class); //反序列化
    

    大家可以试一下~
    如果小伙伴们还有什么疑问欢迎留言~

    展开全文
  • 什么是Json

    2009-05-31 11:25:00
    JSON(JavaScript Object Notation) 一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,可替换XML成为AJAX程序中的数据交换格式。它有两种结构: “名称/值”对的集合(A collection of name/value pairs...
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,可替换XML成为AJAX程序中的数据交换格式。

    它有两种结构:
    1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object)纪录(record)结构(struct)字典(dictionary)哈希表(hash table)有键列表(keyed list),或者关联数组 (associative array)
    2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)

    JSON是JavaScript的子集,我们在JavaScript中可以很容易的使用它。

    下面是官方网站上面提供的一个例子:

    var myJSONObject = {"bindings": [
    {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
    {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
    {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
    }
    ;

    这个例子中,创建了一个对象,它只包含一个成员“bindings”。“bindings”中有一个包含了3个对象的数组,而这每个对象都有"ircEvent""method""regex"3个成员。

    myJSONObject.bindings[0].method 的值是 "newURI"


    JSON官方网站提供的一个开源的JSON解析器和字符串转换器:json.js

    string.parseJSON() 解析函数,它将JSON文本解析成object或者array,可以抛出一个语法错误的异常;
    array.toJSONString(),
    boolean.toJSONString() ,
    date.toJSONString(),
    number.toJSONString(),     
    object.toJSONString(),
    string.toJSONString(): 这几个函数可以生成JSON文本

    下面写一个简单的解析和转换的例子:

    var str='["0","1"]';
    var obj = str.parseJSON();
    document.write(obj[
    0]);
    document.write(obj[
    1]);

    结果是01

    var doc = new Array();
    doc[
    0]='0';
    doc[
    1]='1';
    document.write(doc.toJSONString())

    结果是["0","1"]


    资源
    官方网站:http://www.json.org
    JSON解析和转换器下载:http://www.json.org/json.js

    PHP 5.2.0 新版本中默认支持一个新的 JSON extension,实现了两个函数 json_decode() 和 json_encode(),前者可以将 JSON 格式的字符串还原为 PHP native 的数组和常规对象,而后者则可以将 PHP native 的数组和常规对象编码为 JSON 格式的字符串。

    ------------------------------------

    下面这些看得不是太明白``有高手路过的话`指点一下```

    如果偶研究出来的话``在这里公布下应用说明`````````

    ----------------------------------

    在 JSON 中我们已经介绍过其基本格式,与XML相同,JSON只是一个文字格式,只要客户端与伺服端可以剖析它,就可以利用它作为传送资料的格式,但它是JavaScript的核心特性之一,所以在JavaScript中使用JSON作为资料格式很方便,您还可以在 http://www.json.org 找到处理JSON的程式库,包括客户端JavaScript library与伺服端的library。

    相较于XML,JSON在资料表示时更为简洁,例如一个表示帐户的资料,XML中可能如下表示:

    <account>

         <number>123456</number>

         <name>Justin</name>

         <balance>1000</balance>

    </account>

    而使用JSON可以这么表示:

    var account = {

         number : "123456",

         name: "Justin",

         balance: "1000"

    };

    您可以下载 http://www.json.org/json.js ,并将之加入至网页之中:

    <script type="text/javascript" ></script>

    json.js 中有JSON parser与JSON stringifier,例如它扩充了物件,增加了toJSONString()函式,您可以直接如下传回物件的JSON表示法:

    function Account(number, name, balance) {

         this.number = number;

         this.name = name;

         this.balance = balance;

    }

    var account = new Account(123456, "Justin", 1000);

    alert(account.toJSONString());

    您可以按下 执行范例 观看结果。

    您可以把JSON表示法以POST发送至伺服端,例如:


    HandleJSONEx-2.js

    var xmlHttp;

    function createXMLHttpRequest() {

    if(window.XMLHttpRequest) {

    xmlHttp = new XMLHttpRequest();

    }

    else if(window.ActiveXObject) {

    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

    }

    }

    function prepareJSON() {

    var number = document.getElementById("num").value;

    var name").value;

    var balance = document.getElementById("bal").value;

    var account = new Object();

    account.number = number;

    account.name = name;

    account.balance = balance;

    return account.toJSONString();

    }

    function handleAccount() {

    var json = prepareJSON();

    var url = "JSONServlet?timeStamp" + new Date().getTime();

    createXMLHttpRequest();

    xmlHttp.onreadystatechange = handleStateChange;

    xmlHttp.open("POST", url);

    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    xmlHttp.send(json);

    }

    function handleStateChange() {

    if(xmlHttp.readyState == 4) {

    if(xmlHttp.status == 200) {

    document.getElementById("response").innerHTML = xmlHttp.responseText;

    }

    }

    }

    这个程式使用者输入的帐号资讯包装为物件,并使用JSON扩充的toJSONString()将之转换为JSON格式,之后POST至伺服端,伺服端可以至   JSON in Java 下载JSON伺服端的Parser,您可以撰写以下的程式:


    JSONServlet.java

    package onlyfun.caterpillar;

    import java.io.*;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import org.json.*;

    public class JSONServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

    public JSONServlet() {

    super();

    }

    protected void doPost(HttpServletRequest request,

    HttpServletResponse response) throws ServletException, IOException {

    String json = readJSONString(request);

    JSONObject jsonObject = null;

    String responseText = null;

    try {

    jsonObject = new JSONObject(json);

    responseText = "帐号 " + jsonObject.getString("number") + "<br/> 名称 "

    + jsonObject.getString("name") + "<br/> 餘额 " + jsonObject.getString("balance");

    }

    catch (JSONException e) {

    e.printStackTrace();

    }

    response.setCharacterEncoding("UTF-8");

    response.setContentType("text/xml");

    response.getWriter().print(responseText);

    }

    private String readJSONString(HttpServletRequest request){

    StringBuffer json = new StringBuffer();

    String line = null;

    try {

    BufferedReader reader = request.getReader();

    while((line = reader.readLine()) != null) {

    json.append(line);

    }

    }

    catch(Exception e) {

    System.out.println(e.toString());

    }

    return json.toString();

    }

    }

    这个Servlet剖析JSON,并将资料取出后再传回文字回应。

    如果将JSON字串传回给客户端瀏览器,则可以使用eval()将之运算为一个JavaScript物件以进行操作。

     

     

     

    展开全文
  • 什么是JSON? JSON:JavaScript Object Notation,指JavaScript的本地对象,是一种轻量级的数据交换格式。 JSON有何用? 前面说到JSON是一种轻量级的数据交换格式,它一般用于实现前后台的数据交互。 JSON采用...
  • 什么是 JSON?

    2018-04-28 08:56:06
    什么是 JSON?JSON 英文全称 JavaScript Object NotationJSON 是一种轻量级的数据交换格式。JSON是独立的语言 JSON 易于理解。有什么作用?JSON 是用于存储和传输数据的格式。JSON 通常用于服务端向网页传递数据 ...
  • 文章目录@[toc]一、了解Json3.1 什么是Json二、简单Json语法2.1 语法3.2.1 Json语法记忆规则三、Json字符串的手写转换JavaBean类对象Json简单手写转换四、了解Jackson工具4.1 Jackson简介4.2 jar包介绍4.3 应用场景...
  • java——json入门,什么是json

    千次阅读 2018-07-30 15:25:02
    1、什么是json: json是一种数据格式,对于我们互联网来说,我们服务器和客户端有大量的数据需要进行传输。以前通用的方式是xml,但是xml数据体重太大,效率低下,所以就有了另外一种数据格式,叫json json一共...
  • 什么是JSON Schema?

    2019-05-21 20:12:29
    如果你曾经使用过XML Schema,RelaxNG或ASN.1,那么你很可能已经知道什么是JSON Schema,并且可以跳过本文的阅读。如果你是头一次听说,或者听过过这个词汇但不了解,那么你来对地方了。 要了解JSON Schema是什么,...
  • 什么是JSON

    万次阅读 2020-03-20 07:30:00
    JSON是数据交换的标准格式,它受JavaScript启发。通常,JSON是字符串或文本格式。JSON代表ĴAVA小号CRIPTöbjectÑ浮选。JSON的语法:JSON被...
  • 什么是JSON数据格式?

    2020-09-07 15:27:36
    一、什么是 JSONJSON 是 JavaScript 对象表示法(全称JavaScript Object Notation),类似于XML. JSON 是轻量级的文本数据交换格式,它比 XML 更小、更快,更易解析。 JSON 独立于语言 JSON 具有自我描述性,更易...
  • 什么是Json

    2014-11-27 10:12:18
    1.什么是 JSONJSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言  JSON 具有自我描述性,更易理解 * JSON 使用 JavaScript 语法来...
  • 1、什么是json?json是【Java Script Object Notation标记】简介,简单来说,json就是用【JavaScript语法】写的一个【特殊】的标记【字符串】。2、json的作用(A)简化用JavaScript定义对象的方式(B)也能用在AJAX...
  • 什么是Json?Json支持那些数据类型?

    千次阅读 2018-11-28 20:01:06
    首先说明什么是Json:Json 是一种轻量级的数据交换格式。它基于 javascript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。它的优点: 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。...
  • 什么是JSON

    万次阅读 多人点赞 2019-06-14 06:23:02
    JSON 实例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>阿里云大学(edu.aliyun.com)</title> </head> <body> <h2>...
  • 【c#】什么是Json

    千次阅读 2019-05-30 21:23:28
    一:什么是Json 二:Json的用途 三:Json 的序列化与反序列化 四:Json 语法规则 五:如何使用 LitJson 插件
  • 什么是JSON格式

    热门讨论 2015-03-31 20:49:44
    在做高校云平台的过程中,我不难发现我们统一用了JSON格式,那么什么是JSON呢,今天我们来探个究竟。而至于百度百科上的解释,说实话我真的不怎么理解。但是通过查阅资料可以知道,json简单说就是javascript中的对象...
  • 1、什么是json?  json是【Java Script Object Notation标记】简介,简单来说,json就是用【JavaScript语法】写的一个【特殊】的标记【字符串】。 2、json的作用  (A)简化用JavaScript定义对象的方式  (B...
  • 什么是Json,什么是Ajax,如何创建Ajax?

    千次阅读 2016-10-29 19:04:27
    什么是Json? Json一种轻量级的数据交换格式. 它是基于JavaScript的一个子集.数据格式简单,易于读写,占用带宽小 例如:{"age":"12","name":"back"} JSON 字符串转换为Json对象  var obj = eval('('+str+')'); ...
  • 【整理】什么是JSON+如何处理JSON字符串 2013 年 6 月 23 日 下午 9:28crifan已有1802人围观我来说几句 背景 之前最早的时候,也见过类似于这样的字符串:
  • 什么是JSON? 

    2010-01-05 22:48:00
    什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,020
精华内容 8,808
关键字:

什么是json