真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javascript解析json,javascript解析字符串

js怎么解析json格式字符串

html

在汝陽等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需策劃設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),汝陽網(wǎng)站建設(shè)費(fèi)用合理。

head

script type="text/javascript"

var data = '{"return_code":0,"return_message":"success","data":{"data":[{"id":"1","question":"公主令牌在哪交?"},{"id":"2","question":"公主護(hù)使有什么用?"},{"id":"3","question":"角斗場在哪?"},{"id":"4","question":"北部斷層在哪?"},{"id":"5","question":"歡樂令有什么用?"},{"id":"6","question":"令牌積分有什么用?"},{"id":"7","question":"南部斷層在哪?"},{"id":"8","question":"大妖魔令牌交給誰?"},{"id":"9","question":"神工坊在哪?"},{"id":"10","question":"警戒妖珠有什么用?"}]}}';

function ShowData(){

var obj = eval("("+data+")");

alert("return_code:"+obj["return_code"]);

alert("return_message:"+obj["return_message"]);

alert("第一個(gè)問題id:" + obj["data"]["data"][0]["id"]);

alert("第一個(gè)內(nèi)容id:" + obj["data"]["data"][0]["question"]);

}

/script

/head

body onload="ShowData();"

{"return_code":0,"return_message":"success","data":{"data":[{"id":"1","question":"公主令牌在哪交?"},{"id":"2","question":"公主護(hù)使有什么用?"},{"id":"3","question":"角斗場在哪?"},{"id":"4","question":"北部斷層在哪?"},{"id":"5","question":"歡樂令有什么用?"},{"id":"6","question":"令牌積分有什么用?"},{"id":"7","question":"南部斷層在哪?"},{"id":"8","question":"大妖魔令牌交給誰?"},{"id":"9","question":"神工坊在哪?"},{"id":"10","question":"警戒妖珠有什么用?"}]}}

/body

/html

js解析json字符串報(bào)錯(cuò)解決方案(帶有轉(zhuǎn)義字符的json字符串)

場景:從后臺(tái)請求回來的數(shù)據(jù)中帶有json格式的字符串,需要處理成json對象才能進(jìn)行操作。

JSON.parse():

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

報(bào)錯(cuò): ? ?? Uncaught SyntaxError: Unexpected token } in JSON at position 30

? ? ? ? ? ? Uncaught SyntaxError: Unexpected token ' in JSON at position 1

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

解決方案:使用eval()

報(bào)錯(cuò):SyntaxError: Unexpected token e in JSON at position 1

由于請求回來的json中帶有轉(zhuǎn)義字符,所以才會(huì)報(bào)這個(gè)錯(cuò)誤。

解決方案:帶有轉(zhuǎn)義字符的json字符串使用json

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

json源數(shù)據(jù)字符有轉(zhuǎn)義符應(yīng)該是必須的,你要看解析出來后是否有多余的轉(zhuǎn)義符

json轉(zhuǎn)字符串JSON.stringify總體效果還可以:

前導(dǎo) 0 和小數(shù)點(diǎn)報(bào)錯(cuò):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

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

數(shù)字不能用 0 開頭,比如01,并且你的小數(shù)點(diǎn)后面必須跟著至少一個(gè)數(shù)字。

js解析json文件,獲取數(shù)據(jù)

根據(jù)返回的字符串可以看出是多個(gè)json拼接成的js數(shù)組的形式。

如果返回的只是字符串須現(xiàn)將字符串轉(zhuǎn)成js對象。

使用Jquery的$.each()方法循環(huán)js數(shù)組取出每一個(gè)json對象的數(shù)據(jù)。

str?=?'[{"key":"value","keys":[{"key1":"value1","key2":"value2"},{"key1":"value3","key2":"value4"}],"obj":{"id":1,"msg":"success"}}]';

str_json?=?eval("("?+?str?+?")");//將字符串轉(zhuǎn)換成js對象

$.each(str_json,fucntion(a,b){

alert(a);//彈出數(shù)組的key

alert(b.id);//彈出要取出的數(shù)據(jù)

});

javascript如何處理json數(shù)據(jù)

JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript的一個(gè)子集。 JSON采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成(一般用于提升網(wǎng)絡(luò)傳輸速率)。

JSON的規(guī)則很簡單: 對象是一個(gè)無序的“‘名稱/值'對”集合。一個(gè)對象以“{”(左括號(hào))開始,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào));“‘名稱/值' 對”之間使用“,”(逗號(hào))分隔。具體細(xì)節(jié)參考

舉個(gè)簡答的例子如圖:

這表示一個(gè)user對象,擁有username, age, info, address 等屬性。

同樣也可以用JSON來簡單的修改數(shù)據(jù),修改上面的例子

這樣就可以處理啦。

如何用nodejs來解析json數(shù)據(jù)

第一,我們需要在ubuntu14.04上安裝nodejs,我們可以使用如下命令:

$ sudo apt-get install nodejs

安裝完畢, 我們可以使用如下命令進(jìn)行測試:

$ nodejs -v

v0.10.25

第二,準(zhǔn)備一個(gè)測試json文件, test.json,內(nèi)容如下:

[javascript] view plain copy

{

"person": {

"name": "wanger",

"birth": "1999"

}

}

第三,創(chuàng)建js腳本來解析json文件,main.js

[javascript] view plain copy

#!/usr/bin/nodejs

var cwd = process.argv[1].substring(0, process.argv[1].lastIndexOf("/"));

var fs = require('fs');

function load(file, cb) {

fs.readFile(file, function(err, data) {

if (err)

throw err;

cb(JSON.parse(data.toString()));

});

}

(function() {

if (process.argv.length 2) {

console.log("usage\n\t" + process.argv[1] + " loadfile");

return;

}

load(process.argv[2], function(obj) {

console.log("%s\n", obj.person.name);

console.log("%s\n", obj.person.birth);

});

})();

第四,測試和運(yùn)行

$ ./main.js test.json

wanger

1999


文章標(biāo)題:javascript解析json,javascript解析字符串
本文地址:http://weahome.cn/article/dsddpoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部