最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解JavaScript中js對象與JSON格式字符串的相互轉換

 更新時間:2017年02月14日 15:04:59   作者:吃貓的大魚  
本篇文章主要介紹了JavaScript中js對象與JSON格式字符串的相互轉換,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

首先我們來看一下js中JSON格式的字符串

var JSONStr1 = "{\"name\" : \"張三\"}";

注意以下的寫法不是js中JSON格式的字符串,它只是一個js的字符串。

var JSONStr2 = "{'name' : '張三'}";

我們看JSON語法中對于字符串的定義:是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。一個字符(character)即一個單獨的字符串(character string)。

下面我們來看一下在js中怎么把JSON格式的字符串轉換成一個JS對象。(

var jsObj3 = eval("(" + JSONStr1 + ")");
var jsObj4 = JSON.parse(JSONStr1);

推薦使用第二種方式具體原因請參看:http://www.json.org.cn/resource/json-in-javascript.htm

此外提一句使用這兩種方式轉換后的js對象,應該是“一個符合JSON數據格式的js對象”,也就是說它的屬性是帶著引號的,這只是我的一種猜測,因為如果JSON格式的字符串如下表示:

var JSONStr1 = "{\"f[name]\" : \"張三\"}";

那么轉換后的JS對象的屬性必定要加上引號,因為js對象的屬性不加引號只能使用字母,數字,下劃線和$符號表示,使用其它符號屬性就要加上引號了,所以說JS對象字面量表示法中屬性加上引號是不會錯的。另外如果JSON格式的字符串如上所示,那么轉換后的js對象對f[name]取值就不能使用 jsObj4.f[name] 要用 jsObj4['f[name]'] ,因為有特殊字符,這點要注意了。對于我的猜測,讀者要有異議,可以提給我。

我們再來看看在js中js對象與JSON格式字符串的轉換。下面我準備了幾組js對象加以說明:

<input type="button" value="測試按鈕1" onclick="testJson();"/>

<script type="text/javascript">
  //(1) 這是一個js對象
  var jsObj1 = {
    name : "張三"
  }
  //(2)這是一個內部帶有方法js對象。
  var jsObj2 = {
    name : "張三",
    func : function(){
      alert("hello");
    }
  }
  //(3)這是一個符合JSON數據格式的js對象
  var jsonObj = {
    "name" : "張三",
    "age" : 10,
    "remark" : {"high" :170,"address" : "beijingshi"}
  }
  // js數組對象
  var jsArray = [
    {name : "張三"},
    {"age" : 10}
  ]

  function testJson(){

    var JSONstr1 = JSON.stringify(jsObj1);
    var JSONstr2 = JSON.stringify(jsObj2);
    var JSONstr3 = JSON.stringify(jsonObj);
    var JSONstr4 = JSON.stringify(jsArray);
    alert(JSONstr1);
    alert(JSONstr2);
    alert(JSONstr3);
    alert(JSONstr4);

  }

看一下彈框的內容:

               (1)                                              (2)                                      

                 

                      (3)                                                                       (4)

 

其中 (1)、(3)、(4)的執(zhí)行結果說明,JSON解析器的stringify()函數對于js對象是fou符合JSON格式是不加限定,都可以把js對象轉換成JSON格式字符串。

(2)的執(zhí)行結果說明,js對象中如果沒有JSON表示的值(比如函數和undefined)將會被排除。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

独山县| 甘泉县| 南川市| 靖宇县| 延寿县| 靖远县| 宿迁市| 正阳县| 瓮安县| 吉隆县| 陆河县| 镇雄县| 邢台市| 克东县| 多伦县| 江城| 嘉义县| 汉源县| 汶川县| 德清县| 临泉县| 顺平县| 固镇县| 曲水县| 宣恩县| 鸡东县| 虎林市| 富民县| 长丰县| 南溪县| 大余县| 玛多县| 兖州市| 根河市| 湘潭市| 江山市| 牟定县| 景德镇市| 兰考县| 苏尼特左旗| 麦盖提县|