麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

JavaScript處理解析JSON數(shù)據(jù)過(guò)程詳解

2019-11-20 11:34:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

JSON (JavaScript Object Notation)一種簡(jiǎn)單的數(shù)據(jù)格式,比xml更輕巧。 JSON 是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON 數(shù)據(jù)不需要任何特殊的 API 或工具包。

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

舉個(gè)簡(jiǎn)單的例子:

js 代碼

function showJSON() {    var user =    {    "username":"andy",    "age":20,    "info": { "tel": "123456", "cellphone": "98765"},    "address":    [    {"city":"beijing","postcode":"222333"},    {"city":"newyork","postcode":"555666"}    ]    }    alert(user.username);    alert(user.age);    alert(user.info.cellphone);    alert(user.address[0].city);    alert(user.address[0].postcode);    }

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

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

js 代碼

function showJSON() {    var user =    {    "username":"andy",    "age":20,    "info": { "tel": "123456", "cellphone": "98765"},    "address":    [    {"city":"beijing","postcode":"222333"},    {"city":"newyork","postcode":"555666"}    ]    }    alert(user.username);    alert(user.age);    alert(user.info.cellphone);    alert(user.address[0].city);    alert(user.address[0].postcode);    user.username = "Tom";    alert(user.username);    } 

JSON提供了json.js包,下載http://www.json.org/json.js 后,將其引入然后就可以簡(jiǎn)單的使用object.toJSONString()轉(zhuǎn)換成JSON數(shù)據(jù)。

js 代碼

function showCar() {    var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");    alert(carr.toJSONString());    }      function Car(make, model, year, color)    {    this.make  =  make;    this.model  =  model;    this.year  =  year;    this.color  =  color;    }

可以使用eval來(lái)轉(zhuǎn)換JSON字符到Object

js 代碼

function myEval() {    var str = '{ "name": "Violet", "occupation": "character" }';    var obj = eval('(' + str + ')');    alert(obj.toJSONString());    }

或者使用parseJSON()方法

js 代碼

function myEval() {    var str = '{ "name": "Violet", "occupation": "character" }';    var obj = str.parseJSON();    alert(obj.toJSONString());    }

下面使用prototype寫一個(gè)JSON的ajax例子。

先寫一個(gè)servlet (我的是servlet.ajax.JSONTest1.java)就寫一句話

java 代碼

response.getWriter().print("{ /"name/": /"Violet/", /"occupation/": /"character/" }");  

再在頁(yè)面中寫一個(gè)ajax的請(qǐng)求

js 代碼

function sendRequest() {    var url = "/MyWebApp/JSONTest1";    var mailAjax = new Ajax.Request(    url,    {    method: 'get',    onComplete: jsonResponse    }    );    }      function jsonResponse(originalRequest) {    alert(originalRequest.responseText);    var myobj = originalRequest.responseText.parseJSON();    alert(myobj.name);    }

prototype-1.5.1.js中提供了JSON的方法,String.evalJSON(), 可以不使用json.js, 修改上面的方法

js 代碼

function jsonResponse(originalRequest) {    alert(originalRequest.responseText);    var myobj = originalRequest.responseText.evalJSON(true);    alert(myobj.name);    }  

JSON還提供了java的jar包 http://www.json.org/java/index.html API也很簡(jiǎn)單,下面舉個(gè)例子

在javascript中填加請(qǐng)求參數(shù)

js 代碼

function sendRequest() {    var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");    var pars = "car=" + carr.toJSONString();      var url = "/MyWebApp/JSONTest1";    var mailAjax = new Ajax.Request(    url,    {    method: 'get',    parameters: pars,    onComplete: jsonResponse    }    );    }  

使用JSON請(qǐng)求字符串就可以簡(jiǎn)單的生成JSONObject并進(jìn)行解析,修改servlet添加JSON的處理(要使用json.jar)

java 代碼

private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {    String s3 = request.getParameter("car");    try {    JSONObject jsonObj = new JSONObject(s3);    System.out.println(jsonObj.getString("model"));    System.out.println(jsonObj.getInt("year"));    } catch (JSONException e) {    e.printStackTrace();    }    response.getWriter().print("{ /"name/": /"Violet/", /"occupation/": /"character/" }");    }  

同樣可以使用JSONObject生成JSON字符串,修改servlet

java 代碼

private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {    String s3 = request.getParameter("car");    try {    JSONObject jsonObj = new JSONObject(s3);    System.out.println(jsonObj.getString("model"));    System.out.println(jsonObj.getInt("year"));    } catch (JSONException e) {    e.printStackTrace();    }    JSONObject resultJSON = new JSONObject();    try {    resultJSON.append("name", "Violet")    .append("occupation", "developer")    .append("age", new Integer(22));    System.out.println(resultJSON.toString());    } catch (JSONException e) {    e.printStackTrace();    }    response.getWriter().print(resultJSON.toString());    }    js 代碼  function jsonResponse(originalRequest) {    alert(originalRequest.responseText);    var myobj = originalRequest.responseText.evalJSON(true);    alert(myobj.name);    alert(myobj.age);    } 

以上內(nèi)容就是給大家介紹JavaScrip處理t解析JSON數(shù)據(jù)過(guò)程詳解,希望對(duì)大家有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久久国产一区二区三区不卡 | 狠狠干伊人网 | 亚洲一区二区免费视频 | 黄色片免费在线播放 | 91中文字幕在线观看 | 久久精品黄 | 国人精品视频在线观看 | 国产噜噜噜 | 成人免费毛片片v | 国产精品欧美久久久久一区二区 | 久章草在线视频 | 久久久www成人免费毛片 | 一级做a爰片性色毛片2021 | 一区二区久久 | 国产女同疯狂激烈互摸 | 欧日韩在线视频 | 欧美精品一区二区三区四区 | 黄网站免费观看视频 | 亚洲免费片 | 成人在线观看一区二区 | 牛牛热这里只有精品 | 国产日韩中文字幕 | 国产日本欧美在线观看 | 日韩黄色免费观看 | 欧美一级网 | 3344永久免费 | 在线免费黄色网 | 色淫视频| 91看片成人| 欧美日韩免费看 | 久久艹一区 | 国产羞羞视频在线观看免费应用 | 亚州精品天堂中文字幕 | 久草在线视频精品 | 欧美老外a级毛片 | 午夜精品影院 | 日韩黄色精品 | 久久生活片 | 亚洲第五色综合网 | 欧美视频一区二区三区在线观看 | 国产精品久久久久久久久久久久久久久久 |