當前位置:首頁 » 網頁前端 » js前端怎麼把json變成數組對象
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

js前端怎麼把json變成數組對象

發布時間: 2023-06-05 03:01:48

1. 前端js把json字元串轉json對象 java對象轉json對象命令

最近在逛編程問題解答的時候,看到這樣的提問:如何將一個JSON數組類型的字元串轉換為JSON數組,然後遍歷數組取出JSON對象,最後在JS中取出裡面的屬性。在這里給同樣有疑問的朋友做下解答,

首先我們追本溯源問一下,JSON究竟是什麼東西?為什麼JSON就是易於數據交換?本文將從以下幾個方面去理解JSON:

首先是對「JSON是一種輕量的數據交換格式」的理解;

然後來看經常被混為一談的JSON和JS對象的區別;

json字元串轉換成json數組並遍歷屬性值;

什麼是JSON? JSON是一種輕量級的數據交換格式。

如果沒有去過JSON的官方介紹可以去一下這里,官方介紹已經很清楚地表述了JSON是什麼,我將JSON是什麼提煉成以下幾個方面:

1. 一種數據格式

什麼是格式?就是規范你的數據要怎麼表示,舉個栗子,有個人叫「二百六」,身高「160cm」,體重「60kg」,現在你要將這個人的這些信息傳給別人或者別的什麼東西,你有很多種選擇:

以上所有選擇,傳遞的數據是一樣的,但是你可以看到形式是可以各式各樣的,這就是各種不同格式化後的數據,JSON是其中一種表示方式。

2. 基於文本的數據格式

JSON是基於文本的數據格式,相對於基於二進制的數據,所以JSON在傳遞的喚老時候是傳啟宏遞符合JSON這種格式(至於JSON的格式是什麼我們第二部分再說)的字元串,我們常會稱為「JSON字元串」。

3. 輕量級的數據格式

在JSON之前,有一個數據格式叫xml,現在還是廣泛在用,但是JSON更加輕量,如xml需要用到很多標簽,像上面的例子中,你可以明顯看到xml格式的數據中標簽本身占據了很多空間,而JSON比較輕量,即相同數據,以JSON的格式占據的帶寬更小,這在有大量數據請求和傳遞的情況下是有明顯優勢的。

4. 被廣泛地用於數據交換

輕量已經是一個用於數據交換的優勢了,但更重要的JSON是易於閱讀、編寫和機器解析的,即這個JSON對人和機器都是友好的,而且又輕,獨立於語言(因為是基於文本的),所以JSON被廣泛用於數據交換。

以前端JS進行ajax的POST請求為例,後端PHP處理請求為例:

可以看到,相同的數據在這里有3種不同的表現形式,分別是前端的JS對象、傳輸的JSON字元串、後端的PHP對象,JS對象和PHP對象明顯不是一個東西,但是由於大家用的都是JSON來傳遞數據,大家都能理解這種數據格式,都能把JSON這種數據格式很容易地轉化為自己能理解的數據結構,這就方便啦,在其他各種語言環境中交換數據都是如此。

經常被混為一談的JSON和JS對象很多時候都聽到「JSON是JS的一個子集」這句話,而且這句話我曾經也一直這么認為,每個符合JSON格式的字元串你解析成js都是可以的,直到後來發現了一個奇奇怪怪的東西…

1. 兩個本質不同的東西為什麼那麼密切

JSON和JS對象本質上完全不是同一個東西,就像「斑馬線」和「斑馬」,「斑馬線」基於「斑馬」身上的條紋來呈現和命名,但是斑馬是活的,斑馬線是非生物。

同樣,」JSON」全名」JavaScript Object Notation」,所以它的格式(語法)是基於JS的,但它就是一種格式,而JS對象是一個實例,是存在於內存的一個東西。

說句玩笑話,如果JSON是基於PHP的,可能就叫PON了,形式可能就是這樣的了[『propertyOne』 => 『foo』, 『propertyTwo』 => 42,],如果這樣,那麼JSON可能現在是和PHP比較密切了。

此外,JSON是可以傳輸的,因為它是文本格式,但是JS對象是沒辦法傳輸的,在語法上,JSON也會更加嚴格,但是JS對象就很鬆了。

那麼兩個不同的東西為什麼那麼密切,因為JSON畢竟是從JS中演變出來的,語法相近。

2. JSON格式別JS對象語法表現上嚴格在哪

先就以「鍵值對為表現的對象」形式上,對比下兩者的不同,至於JSON還能以怎樣的形式表現,對比完後再羅列。

可以看到,相對於JS對象,JSON的格式更嚴格,所以和旁升大部分寫的JS對象是不符合JSON的格式的。

json字元串轉換成json數組並遍歷屬性值方式一:使用Iterator迭代器遍歷取值

方法二:使用for循環

2. JS中如何把JSON格式的字元串轉化為一個對象或數組呢

通常都是用eval()函數來進行轉換的,例如:var
sJson
=
'{a:
1}';var
o
=
eval('('
+
sJson
+
')');alert(o.a);如果是數組的話,也是類似的,在字元串兩邊各加上一個小括弧,然後用eval()函數將其轉換為數組,再賦值給某個變數,就可以直接使用了。

3. JS中如何把JSON格式的字元串轉化為一個對象或數組呢

通常都是用eval()函數來進行轉換的,例如:var
sjson
=
'{a:
1}';var
o
=
eval('('
+
sjson
+
')');alert(o.a);如果是數組的話,也是類似的,在字元串兩邊各加上一個小括弧,然後用eval()函數將其轉換為數組,再賦值給某個變數,就可以直接使用了。

4. javascript json對象轉成數組

我平時是這樣把json轉換成數組循環處理的:

vardataArray=eval(jsonStr);
for(variindataArray)
{
//TODO
}

有什麼問題你都可以追問我,沒問題,望採納,謝謝!

5. JS中如何把JSON格式的字元串轉化為一個對象或數組呢

JS中如何把JSON格式的字元串轉化為一個對象或數組呢?下面小編就為大家帶來一篇js 轉json格式的字元串為對象或數組(前後台)的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
一、前台
// 轉換成對象

var myObject = JSON.parse(_data);
alert("對象:"+myObject.msg);

// 轉換成數組
var myobj = eval("["+_data+"]");
for (var i = 0; i < myobj.length; i++) {
alert("數組:"+myobj[i].msg);
}

//把json格式的字元串轉成JSON對象

var json1 = '{"department": "中兵","address": "北京","contacts": "李碩","telphone": "15201274666","email": "[email protected]","fax": "0108596666"}';
var json2 = '{"department": "中兵2","address": "北京2","contacts": "李碩2","telphone": "152012746662","email": "[email protected]","fax": "01085966662"}';
var jsonObj = $.parseJSON(json1); 或用eval方法

//把數組轉成JSON對象

var arr=new Array();
arr.push(json1);
arr.push(json2);
var b=JSON.stringify(arr)
二、後台

當需要把一串字元串轉成一個json 數組 ,並遍歷其中的內容時。

首頁導入 net.sf.json.JSONArray和net.sf.json.JSONObject 兩個jar 包
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ; // 一個未轉化的字元串
JSONArray json = JSONArray.fromObject(str ); // 首先把字元串轉成 JSONArray 對象
if(json.size()>0){
for(int i=0;i<json.size();i++){
JSONObject job = json.getJSONObject(i); // 遍歷 jsonarray 數組,把每一個對象轉成 json 對象
System.out.println(job.get("name")+"=") ; // 得到 每個對象中的屬性值
}
}
以上就是小編為大家帶來的js 轉json格式的字元串為對象或數組(前後台)的方法全部內容。