1. 程式人生 > >jquery、js中String或Object與json、json陣列的互轉

jquery、js中String或Object與json、json陣列的互轉

**

字串轉JSON

**
第一種方式:
使用js函式eval();
dataJson=eval(dataJson);是錯誤的轉換方式。
正確的轉換方式需要加(): testJson = eval(“(” + dataJson+ “)”);

eval()的速度非常快,但是他可以編譯以及執行任何javaScript程式,所以會存在安全問題。在使用eval()。來源必須是值得信賴的。需要使用更安全的json解析器。在伺服器不嚴格的編碼在json或者如果不嚴格驗證的輸入,就有可能提供無效的json或者載有危險的指令碼,在eval()中執行指令碼,釋放惡意程式碼。

function
ConvertStr2JsonFor() {
//var dataJson= "{ name: '小強', age: 16 }";(支援) //var dataJson= "{ 'name': '小強', 'age': 16 }";(支援) var dataJson= '{ "name": "小強", "age": 16 }'; //testJson=eval(dataJson);//錯誤的轉換方式 dataJson= eval("(" + dataJson+ ")"); alert(dataJson.
name); }

第二種方式
使用jquery.parseJSON()方法對json的格式要求比較高,必須符合json格式,如屬性都需用引號引起來

function ConvertToJsonForJq() {  
          var dataJson= '{ "name": "小強", "age": 16 }';  
          //不知道  
          //'{ name: "小強", age: 16 }' (name 沒有使用雙引號包裹)  
          //"{ 'name': "小強", 'age': 16 }"(name使用單引號)  
          dataJson= $.parseJSON(dataJson);  
          alert(dataJson.
name); }

第三種方式:
new Function形式,比較怪異哦。如下
複製程式碼 程式碼如下:

function strToJson(str){
    var json = (new Function("return " + str))();
    return json;
} 

JS物件和JSON互轉

JSON.stringify(jsonobj); //可以將json物件轉換成json對符串 
//物件轉JSON
obj.toJSONString()

JS物件與JSON陣列互轉

function obj2Array(){
    var linkStr = [];//宣告陣列
    var data1 = getDataToFoce();
    var linkJson;
    //如果data1為非陣列,則不用遍歷,直接使用push方法即可
    $.each(data1, function(i, value) {
        linkJson = '{"source":(i-1),"target":i}';
        linkJson = eval("(" + linkJson + ")");
        data1.push(linkJson);//使用push方法連線陣列
    }); 
    return data1;
}

相關推薦

jqueryjsStringObjectjsonjson陣列

** 字串轉JSON ** 第一種方式: 使用js函式eval(); dataJson=eval(dataJson);是錯誤的轉換方式。 正確的轉換方式需要加(): testJson = eval(“(” + dataJson+ “)”); e

JS基礎--函數BOMDOM操作JS的事件以及內置對象

對話框 回車 == 問題 tde tle ets fixed 訪問 前 言 絮叨絮叨 這裏是JS基礎知識集中講解的第三篇,也是最後一篇,三篇JS的基礎,大多是知識的羅列,並沒有涉及更難得東西,幹貨滿滿!看完這一篇後,相信許多正在像我一樣正處於初

總結JSstringmatharray的常用的方法

等於 [1] 切分 比較 定位 ... 兩個 def lte JS為每種數據類型都內置很多方法,真的不好記憶,而且有些還容易記混,現整理如下,以便以後查看: 一、String ①charAt()方法用於返回指定索引處的字符。返回的字符是長度為 1 的字符串。 語法:stri

js的new操作符Object.create()的作用區別

fcm 並不會 copyright 性能 reat 現在 所有 tar tool js中的new操作符與Object.create()的作用與區別 https://blog.csdn.net/mht1829/article/details/76785231 201

JS的new操作符Object.create()

new操作符用於例項化一個物件: var obj = new Base();,具體過程可解釋如下: (1) 建立一個新物件,__proto__屬性指向建構函式的prototype,其中constructor指向原建構函式; (2) 將建構函式的作用域賦給新物件(

JSString()new String()的差異淺析

今天看到這樣的面試題,如下: var yiifaa = 'yiifaa', str1 = new String(yiifaa), str2 = String(yiifaa) 宣告與賦值了3個變數,然後考題如下: // 請確認以下的

JS的方法名HTMLidname重名問題

1. 在HTML的from表單中,<input>標籤內的id或name不能與JS方法重名 2. 當<input>標籤不在from表單中,id或name可以與JS方法重名 3. <image>標籤id或name不能與JS方法重名 4. &l

C++intdoublestring的相互轉換

一、int轉string 1.c++11標準增加了全域性函式std::to_string: string to_string (int val); string to_string (long val); string to_string (long l

js的內建物件Arraystring

1.陣列 Array  1,new Array() 2,字面量 length屬性 可以通過length移除陣列末尾的值。長度等於最後的索引值加1! 棧方法 push(),新增到陣列的末尾。unshift(),新增到陣列首部。             pop() 刪除元

【2017-05-21】WebForm跨頁面傳值取值C#服務端跳頁面 Button的OnClientClick屬性JsgetAttribute和超鏈接點擊彈出警示框。

代碼 height delet update size 內存 客戶 bar win 一、跨頁面傳值和取值: 1、QueryString - url傳值,地址傳值 優缺點:不占用服務器內存;保密性差,傳遞長度有限。 通過跳轉頁面路徑進行傳值,方式: href="地址?ke

5月15日上課筆記-js location對象的屬性document對象js內置對象Date事件對象

nts 根據 host value string 定時函數 date this 個數 location的屬性: host: 返回當前主機名和端口號 定時函數: setTimeout( ) setInterval() 二、document對

js創建html標簽加入select下默認的option的value和text刪除select元素節點下全部的OPTION節點

bsp art 利用 scrip -m script space multipl ng- <pre name="code" class="java"> jsp 中的下拉框標簽: <s:select na

js string 常見方法

strong 指定 log match nds last 如果 comment 出現 1.charAt 返回指定索引出的字符 var str=‘abcd‘;  var a=str.charAt(0);  console.log(a); //‘a‘ conso

jseval,arguments異常處理的用法-基礎知識總結------彭記(017)

報錯 字符串 nts 字符 number 拖動 ron cnblogs 數組 eval的使用: <script> /*eval的作用: * 1.將字符串當成js代碼來執行 * 2.可以將json格式的字符串轉換為js對象*/

CSS及HTMLjs的資源路徑問題

stat 文件中 bsp ng- 層級 png 目的 指令 php 路徑 分為相對路徑和絕對路徑 一、相對路徑。 相對於文件本身的路徑。 用 ./ 表示同一文件夾下的兄弟文件。 用../ 表示所處文件夾的父文件夾中的文件。 二、絕對路徑。 本機絕對路徑是 例如 E:\ph

js變量含(參數數組)作用域傳遞問題

驗證 提升 地址 基本 沒有 number for asc 添加元素 js沒有塊級作用域(你可以自己閉包或其他方法實現),只有函數級作用域和全局作用域,函數外面的變量函數裏面可以找到使用,函數裏面的變量外面無法訪問到。 寫這個是因為ES6中的一個例子開始的。首先看下

JSString()和toString()

數據 string 一個 htm keyword www. type mar lin 1、.toString()可以將所有的的數據都轉換為字符串,但是要排除null 和 undefined 例如將false轉為字符串類型 <script> var str =

Angular.js copy 賦值 = 賦值 區別

特殊 ng-click ext 什麽 doc date bsp tro 影響 轉自st.gg Angular.js 中 copy 賦值與 = 賦值 區別   為什麽用 $scope.user = $scope.master; $scope.master 會跟著 $sc

JavaString字符串toString()String.valueOf()String+ ""的區別

builder arc span 但是 內容 end hello 部分 exception Object#toString(): Object object = getObject(); System.out.println(object.toString());

JsStringint

數字 進行 開頭 parse 註意 var enter 最好 form Js中String轉int 方案一代碼: Number(str) 方案二代碼: //parseInt 方法都有兩個參數, 第一個參數就是要轉換的對象, 第二個參數是進制基數, 可以是 2, 8,