導航:首頁 > 編程語言 > js如何解析json

js如何解析json

發布時間:2023-04-20 10:38:20

js面試題,ajax請求時,如何解釋json數據

客戶端HTML代碼
<table>
<thead>
<tr>
<td>學號</td>
<td>姓名</td>
<td>班級</td>
<td>性別</td>
<td>電話</td>
</tr>
</thead>
<tbody></tbody>
<input id="btnget" type="button" value="載入數據" />
javascript代碼:
$(function(){
$("#btnget").click(function(){
$.Ajax({
type:"post",
dataType:"Json",
url:"data.ashx",
success:function(msg){
var str="";
for(i in msg){
str+="<tr><td>"+msg[i].id+
"</td><td>"+msg[i].name+
"</td><td>"+msg[i].cla+
"</td><td>"+msg[i].sex+
"</td><td>"+msg[i].tel+
"</td></tr>";
}
$("tbody").append(str);
}
});
});
});
樣式部分:
<style type="text/css">
table{
boeder-collapse:collapse;
}
table td{
text-align:center;
border:1px solid gray;
padding:3px 10px;
}
</style>
伺服器端返回的json數據代碼:
string data=[{\"id\":\"2010324268\",\"name\":\"林宇\",\"cla\":\"10軟體\",\"sex\":\"男\",\"tel\":\"***********\"},{\"id\":\"2010324269\",\"name\":\"李四\",\"cla\":\"10網路\",\"sex\":\"男\",\"tel\":\"***********\"},{\"id\":\"2010324270\",\"name\":\"肖玲\",\"cla\":\"10網路\",\"sex\":\"女\",\"tel\":\"***********\"}];
context.Response.Write(data);

㈡ js中除了eval方法 還有什麼方法來解析json

eval解析JSON中的注意點 在JS中將JSON的字元串解析成JSON數據戚察鋒格式,一般有兩種方式: 1.一種為使用eval()函數高晌。 2. 使用Function對象來進行返回解析沒陪。 使用eval函數來解析,並且使用jquery的each方法來遍歷 用jquery解析JSON數據的方法

㈢ 在js中怎麼解析JsonObject對象數組

js和java中的json對象無法互相轉換的吧(用struts2可以),可以在java中將對象轉換為json字元串,傳到js後,再在js中將json字元串轉換成json對象
Java code
Map map1 = new HashMap();
Map map2 = new HashMap();

map1.put("id", 1);
map1.put("name", "張三");

map2.put("id", 2);
map2.put("name","李四");

List list = new ArrayList();
list.add(map1)
list.add(map2)

Map jsonMap = new HashMap();
jsonMap.put("jsonstr",list); //必須是map對象才能轉換成json對象
JSONObject json = JSONObject.fromObject(map); //要用到json-lib-2.3-jdk15.jar
return json.toString();

記得引入json.js
JScript code
UserAction.getUser(function(result) { var jsonResult = JSON.parse(result);//如何不行用var jsonResult=JSON.parseJSON(),json版本問題 var resultList = jsonResult['jsonstr']; for(var one in resultList){ var item= resultList[one]; alert(item.id); alert(item.name); }

㈣ js解析Json需三層循環,有其他好的方法嗎

使用遞歸顫碧或,下面慧野是一個JSON轉String的函數應該會對你有所幫助

functionjsonToString(obj){
varTHIS=this;
switch(typeof(obj)){
case'string':
return'"'+obj.replace(/(["\])/g,'\$1')+'"';
case'array':
return'['+obj.map(THIS.jsonToString).join(',')+']';
case'object':
if(objinstanceofArray){
varstrArr=[];
varlen=obj.length;
for(vari=0;i<len;i++){
strArr.push(THIS.jsonToString(obj[i]));
}
return'['+strArr.join(',')+']';
}elseif(obj==null){
return'null';
}else{
varstring=[];
for(varpropertyinobj)string.push(THIS.jsonToString(property)+':'+THIS.jsonToString(obj[property]));
return'{'+string.join(',')+'}';
}
case'number':
returnobj;
casefalse:茄伍
returnobj;
}
}

㈤ JS解析json數據(如何將json字元串轉化為數

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
var t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }";
var jsonobj=eval('('+t+')');
alert(jsonobj.firstName);
alert(jsonobj.lastName);
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++){
alert(myobj[i].name);
alert(myobj[i].age);
}
var t3="[['<a href=# onclick=openLink(14113295100,社旗縣國稅局橋頭稅務所,14113295100,,swjg_dm);>14113295100</a>','社旗縣國稅局橋頭稅務所','社旗縣城郊鄉長江路西段']]";
//通過eval() 函數可以將JSON字元串轉化為對象
var obj = eval(t3);
for(var i=0;i<obj.length;i++){
for(var j=0;j<obj[i].length;j++){
alert(obj[i][j]);
}
}
/*
//stringifier 函數的作用跟 parse 相反, 用來將一個js對象轉換為 JSON 文本。
var jsonText = JSON.stringify(obj);
alert(jsonText);
//如果基於安全的考慮的話,最好是使用一個 JSON 解析器。 一個 JSON 解析器將只接受 JSON 文本。所以是更安全的。
var myObject = JSON.parse(myJSONtext, filter);
//可選的 filter 參數將遍歷每一個value key 值對, 並進行相關的處理。如:
//如
myData = JSON.parse(text, function (key, value) {
return key.indexOf('date') >= 0 ? new Date(value) : value; });
//stringifier 函數的作用跟 parse 相反, 用來將一個js對象轉換為 JSON 文本。
var myJSONText = JSON.stringifier(myObject);
*/
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>

㈥ js怎麼解析geojson 格式的

首先要理解什麼是json,在js中json實際上就是一個對象了,可以通過jquery的方法將json轉化成字元串,內或者容將字元串轉化為json。

  1. $.parse(),這個方法可以把字元串轉成Json。

  2. JSON.stringify()方法用於把json轉成字元串。

js中一般可以直接對json進行操作的,比如一個json對象為:

var obj = {name:'abd'};

那麼可以直接通過"."來獲取對象的屬性,

obj.name;//abd

就可以拿到對象的值了。

㈦ js解析json字元串報錯解決方案(帶有轉義字元的json字元串)

場景:從後台請求回來的數據中帶有json格式的字元串,需要處理成json對象才能進行操作。

JSON.parse():

        使用JSON.parse方法來解析json字元串。

   

報錯:      Uncaught SyntaxError: Unexpected token } in JSON at position 30

                Uncaught SyntaxError: Unexpected token ' in JSON at position 1

           這種報錯是由於,json字元串的格式有問題,json字元串中對象的最後一個元素後面不可以再加','逗號了。比如'{ "name": "cxh", "sex": "man",}'使用JSON.parse()就會報錯,而且 在json字元串中鍵值對需要用雙引號引起來。

解決方案:使用eval()

報錯:SyntaxError: Unexpected token e in JSON at position 1

        由於請求回來的json中帶有轉義字元,所以才會報這個錯誤。

解決方案:帶有轉義字元的json字元串使用json

        json數據使用JSON.parse()有瀏覽器是不兼容JSON這個對象的,或者有的裡面有JSON.parse解析不了的東西,所以暫時還是使用: eval("("+data+")");

        json源數據字元有轉義符應該是必須的,你要看解析出來後是否有多餘的轉義符

json轉字元串JSON.stringify總體效果還可以:

前導 0 和小數點報錯:SyntaxError: JSON.parse: expected ',' or '}' after property value

                                      SyntaxError: JSON.parse: unterminated fractional number

                                     Uncaught SyntaxError: Unexpected number in JSON at position 25

                                     Uncaught SyntaxError: Unexpected token } in JSON at position 26

                                     

        數字不能用 0 開頭,比如01,並且你的小數點後面必須跟著至少一個數字。

㈧ js怎麼載入&解析json文件,原生的

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,採用完全獨立於語言的文本格式,是理想的數據交換格式。同時,JSON是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON數據不須要任何特殊的 API 或工具包。

本文主要是對JS操作JSON的要領做下總結。

在JSON中,有兩種結構:對象和數組。

1. 一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「『名稱/值』 對」之間運用 「,」(逗號)分隔。 名稱用引號括起來;值如果是字元串則必須用括弧,數值型則不須要。例如:

var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};

2. 數組是值(value)的有序集合。一個數組以「[」(左中括弧)開始,「]」(右中括弧)結束。值之間運用 「,」(逗號)分隔。

例如:

var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];

為了方便地處理JSON數據,JSON提供了json.js包,下載地址:http://www.json.org/json.js

在數據傳輸流程中,json是以文本,即字元串的形式傳遞的,而JS操作的是JSON對象,所以,JSON對象和JSON字元串之間的相互轉換是關鍵。例如:

JSON字元串:

var str1 = '{ "name": "cxh", "sex": "man" }';

JSON對象:

var str2 = { "name": "cxh", "sex": "man" };

一、JSON字元串轉換為JSON對象

要運用上面的str1,必須運用下面的要領先轉化為JSON對象:

//由JSON字元串轉換為JSON對象

var obj = eval('(' + str + ')');

或者

var obj = str.parseJSON(); //由JSON字元串轉換為JSON對象

或者

var obj = JSON.parse(str); //由JSON字元串轉換為JSON對象

然後,就可以這樣讀取:

Alert(obj.name);

Alert(obj.sex);

特別留心:如果obj本來就是一個JSON對象,那麼運用 eval()函數轉換後(哪怕是多次轉換)還是JSON對象,但是運用 parseJSON()函數處理後會有疑問(拋出語法異常)。

二、可以運用 toJSONString()或者全局要領 JSON.stringify()將JSON對象轉化為JSON字元串。

例如:

var last=obj.toJSONString(); //將JSON對象轉化為JSON字元

或者

var last=JSON.stringify(obj); //將JSON對象轉化為JSON字元

alert(last);

留心:

上面的多個要領中,除了eval()函數是js自帶的之外,其他的多個要領都來自json.js包。新版本的 JSON 修改了 API,將 JSON.stringify() 和 JSON.parse() 兩個要領都注入到了 Javascript 的內建對象裡面,前者變成了 Object.toJSONString(),而後者變成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要領,則說明您的json包版本太低。

㈨ js解析與序列化json數據(一)json.stringify()的基本用法

早期的JSON解析器基本上就是使用JavaScript的eval()函數。由於JSON是JavaScript語法的自己,因此eval()函數可以解析、解釋並返回JavaScript的對象和數組。
ECMAScript
5對解析JSON的行為進行了規范,定義了全局對象JSON。
JSON對象有兩個方法:stringify()和parse()。在最簡單的情況下,這兩個方法分別用於把JavaScript對象序列化為JSON字元串和把JSON字元串解析為原生JavaScript。例如:
新建一個HTML:代碼如下:
復制代碼
代碼如下:
<html>
<head>
<title></title>
<script
type="text/javascript">
function
init()
{
var
book={
title:"JavaScript高級程序設計",
authors:[
"Nicholas
C.
Zakas"
],
edition:3,
year:2011
};
var
jsonBook=JSON.stringify(book);
var
objectBook=JSON.parse(jsonBook);
var
title=objectBook.title;}
</script>
</head>
<body>
<input
type="button"
onclick="init()"
value="測試"
/>
</body>
</html>
默認情況下,JSON.stringify()輸出的JSON字元串不包含任何空字元或縮進,因此保存在jsonBook中的字元串如下所示:
復制代碼
代碼如下:
{"title":"JavaScript高級程序設計","authors":["Nicholas
C.
Zakas"],"edition":3,"year":2011}
在序列化JavaScript對象時,所有函數及原型成員都會被有意忽略,不體現在結果中。此外,值為undefined的任何屬性也都會被跳過。結果中最終都是值為有效JSON數據類型的實例屬性。
注意,雖然book與objectBook具有相同的屬性,但它們是兩個獨立的、沒有任何關系的對象。如果傳給JSON.parse()的字元串不是有效的JSON,該方法會拋出錯誤。

㈩ js解析json數據,並找出其中重復數據出現的次數!


<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">
<script>
functioncountJson(json){
if(""==json){
returnfalse;
}
varobj=eval("("+json+")"),len=obj.length,result=newArray();
for(vari=0;i<len;i++){
varid=obj[i].id;
if(result[id]){
result[id]=result[id]+1;
}else{
result[id]=1;
}
}
if(result.length>0){
returnresult;
}
return'統計無結果';
}

vara='[{"id":1,"name":"1"},{"id":2,"name":"2"},{"id":1,"name":"1"}]',
o=countJson(a),
k=o.length,
html="";
for(variino){
html+="id為"+i+"的有"+o[i]+"個<p>";
}
document.write(html);
</script>


這個函數的參數是傳的json字元串,如果你傳入的本身就是一個object,就把那段eval去掉

閱讀全文

與js如何解析json相關的資料

熱點內容
工行銀行卡安全升級 瀏覽:807
桌面放的文件找不到 瀏覽:922
買學生票用什麼app 瀏覽:590
共建共享網路平台 瀏覽:39
js傳值到超鏈接裡面 瀏覽:608
編程中的w和h是什麼 瀏覽:313
資料庫切了什麼意思 瀏覽:213
如何登錄極路由器設置密碼 瀏覽:522
jsp用戶登陸密碼加密源代碼 瀏覽:629
everfilter使用教程 瀏覽:768
作業票文件名稱是什麼 瀏覽:463
私密文件忘記密碼 瀏覽:686
藏文軟體app怎麼可以下載 瀏覽:960
鍵盤文件名 瀏覽:538
電腦自帶驅動在那個文件夾 瀏覽:531
c窗體讀取文件夾 瀏覽:965
asp婚紗攝影網站 瀏覽:684
文件恢復的原理 瀏覽:828
移動硬碟清空怎麼恢復數據 瀏覽:433
文件保存電腦桌面英文 瀏覽:128

友情鏈接