Rumah >hujung hadapan web >tutorial js >Penjelasan terperinci tentang proses pemprosesan JavaScript dan menghuraikan kemahiran JSON data_javascript

Penjelasan terperinci tentang proses pemprosesan JavaScript dan menghuraikan kemahiran JSON data_javascript

WBOY
WBOYasal
2016-05-16 15:39:371083semak imbas

JSON (JavaScript Object Notation) ialah format data ringkas yang lebih ringan daripada xml. JSON ialah format JavaScript asli, yang bermaksud pemprosesan data JSON dalam JavaScript tidak memerlukan sebarang API atau kit alat khas.

Peraturan JSON adalah mudah: objek ialah koleksi tidak tertib "pasangan nama/nilai". Objek bermula dengan "{" (kurungan kiri) dan berakhir dengan "}" (kurungan kanan). Setiap "nama" diikuti dengan ":" (titik bertitik); pasangan "nama/nilai" dipisahkan dengan "," (koma). Untuk butiran khusus, sila rujuk http://www.json.org/json-zh.html

Contoh mudah:

kod 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);  
  }

Ini mewakili objek pengguna dengan atribut seperti nama pengguna, umur, maklumat, alamat, dsb.

Anda juga boleh menggunakan JSON untuk mengubah suai data, mengubah suai contoh di atas

kod 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 menyediakan pakej json.js Selepas memuat turun http://www.json.org/json.js, importnya dan kemudian hanya gunakan object.toJSONString() untuk menukarnya kepada JSON. data.

kod 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;  
  }

Anda boleh menggunakan eval untuk menukar aksara JSON kepada Object

kod js

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

Atau gunakan kaedah parseJSON()

kod js

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

Yang berikut menggunakan prototaip untuk menulis contoh ajax JSON.

Mula-mula tulis servlet (saya servlet.ajax.JSONTest1.java) dan tulis satu ayat

kod java

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

Tulis permintaan ajax pada halaman

kod 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);  
  }

Prototaip-1.5.1.js menyediakan kaedah JSON, String.evalJSON(), anda boleh mengubah suai kaedah di atas tanpa menggunakan json.js

kod js

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

JSON juga menyediakan pakej java jar http://www.json.org/java/index.html API juga sangat mudah, berikut adalah contoh

Tambah parameter permintaan dalam javascript

kod 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  
  }  
  );  
  }  

Menggunakan rentetan permintaan JSON, anda hanya boleh menjana JSONObject dan menghuraikannya, mengubah suai servlet untuk menambah pemprosesan JSON (gunakan json.jar)

kod 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\" }");  
  }  

Anda juga boleh menggunakan JSONObject untuk menjana rentetan JSON dan mengubah suai servlet

kod 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);  
  } 

Kandungan di atas adalah untuk memperkenalkan anda kepada proses terperinci pemprosesan JavaScript dan menghurai data JSON saya harap ia akan membantu anda.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn