使用JavaScript構(gòu)建JSON格式字符串實(shí)現(xiàn)步驟

2022-05-17 14:48 更新
如果你現(xiàn)在正在使用Restful API,并且你需要通過(guò)web項(xiàng)目來(lái)構(gòu)建json格式字符串的響應(yīng),那么這篇文章將幫助你使用javascript來(lái)創(chuàng)建json格式字符串。這是非常有用的,我們將通過(guò)jQuery插件$.toJSON把數(shù)據(jù)對(duì)象轉(zhuǎn)換為json格式。 

使用JavaScript構(gòu)建JSON格式字符串 

JavaScript代碼

在這里包含了javascript代碼。$(“#form”).submit(function(){}- delete_button是form標(biāo)簽的ID,我們通過(guò)element.val()調(diào)用表單輸入框的值。
代碼如下:
<script src="jquery.min.js"></script> 
<script src="jquery.json-2.2.js"></script> 
<script src="GetPostAjax.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() 
{ 
$("#form").submit(function(e){ 
e.preventDefault(); 
var username,email,password,gender; 
username=$("#username").val(); 
email=$("#email").val(); 
password=$("#username").val(); 
gender=$("#gender").val(); 
if(username.length>0 && email.length>0 && password.length>0 &&gender.length>0) 
{ 
//Creating Objects 
var request = new Object(); 
var userDetails = new Object(); 
var user = new Object(); 
var websites=new Array(); 
user.name=username; 
user.email=email; 
user.password=password; 
user.gender=gender; 
//Array Push 
if(website1.length>0) 
websites.push(website1); 
if(website2.length>0) 
websites.push(website2); 
if(website3.length>0) 
websites.push(website3); 
user.websites=websites; 
userDetails.user = user; 
request.userDetails = userDetails; 
var jsonfy = $.toJSON(request); 
// Encodes special characters 
var encodedata = 'jsondata='+encodeURIComponent(jsonfy); 
//Ajax Call 
var url='website API URL'; 
post_data(url,encodedata, function(data) { 
alert("Success"); 
}); 
} 
}); 
}); 
</script"> 

HTML代碼

代碼如下:
<form method='post' action='' id='form'> 
Name 
<input type='text' name='username' id='username' /> 
Email 
<input type='text' name='email' id='email' /> 
Password 
<input type='text' name='password' id='password' /> 
Gender 
<select name='gender' id='gender'><option value='male'>Male</option><option value='female'>Female</option></select> 
Websites 
<input type='text' id='website1' /> 
<input type='text' id='website2' /> 
<input type='text' id='website3' /> 
<input type='submit' id='submit'/> 
</form> 

JSON輸出

代碼如下:
{ 
    "userDetails":{ 
    "user":{ 
    "name":"Srinivas Tamada", 
    "email":"srinivas@9lessons.info", 
    "password":"Srinivas Tamada", 
    "gender":"male", 
    "websites":["www.software8.co","www.heatpress123.net","www.0769zzw.com"] 
    } 
  } 
}

JSON Encoded 

對(duì)特殊字符進(jìn)行編碼,會(huì)把以下字符進(jìn)行編碼
代碼如下:
, / ? : @ & = + $ # 
jsondata=%7B%22userDetails%22%3A%7B%22user%22%3A%7B%22name%22%3A%22Srinivas%20Tamada%22%2C%22email%22%3A%22srinivas%409lessons.info%22%2C%22password%22%3A%22Srinivas%20Tamada%22%2C%22gender%22%3A%22male%22%2C%22websites%22%3A%5B%22www.9lessons.info%22%2C%22www.egglabs.in%22%2C%22www.fglogin.com%22%5D%7D%7D%7D

GetPostAjax.js 

這里定義了jquery的ajax請(qǐng)求方法。
代碼如下:
function post_data(url,encodedata, success){ 
$.ajax({ 
type:"POST", 
url:url, 
data :encodedata, 
dataType:"json", 
restful:true, 
contentType: 'application/json', 
cache:false, 
timeout:20000, 
async:true, 
beforeSend :function(data) { }, 
success:function(data){ 
success.call(this, data); 
}, 
error:function(data){ 
alert("Error In Connecting"); 
} 
}); 
}

java創(chuàng)建json對(duì)象

// 聲明兩個(gè)json數(shù)組  
[java] view plain copy print?
      JSONArray gResTable = new JSONArray();   
      JSONArray gCmtTable = new JSONArray();   
// 聲明json對(duì)象       
ONObject outData = new JSONObject();  
//把json數(shù)組加到j(luò)son對(duì)象中  
[java] view plain copy print?
outData.put("ResTable", gResTable);  
outData.put("CmtTable", gCmtTable);  
  //此時(shí)創(chuàng)建出來(lái)的如下:jsonData={"ResTable":[],"CmtTable":[]};  
  把json數(shù)據(jù)加到j(luò)son數(shù)組中  
for (int i = 0; i < 2; i ++)  
{  
    JSONObject node = new JSONObject();  
    node.put("thumb_path", "./Image/" + i +".gif");  
    node.put("flash_path", "./Image/" + i +".gif");  
    node.put("desc1", "可疑車輛" + i);  
    node.put("desc2", "");  
    node.put("desc3", "");  
    node.put("desc4", "");  
    node.put("title", "hello");  
    node.put("upload_time", (new java.util.Date()).toString());  
    node.put("uploader", "王二");  
    gResTable.put(node);  
}  
  
for (int i = 0; i < 2; i ++)  
{  
    JSONObject node = new JSONObject();  
    node.put("logo_path", "./Image/" + i +".gif");  
    node.put("comment", "hello");  
    node.put("comment_time", (new java.util.Date()).toString());  
    node.put("author", "王二");  
    gCmtTable.put(node);  
}
建出來(lái)的json格式如下:  
[java] view plain copy print?
/* 
    jsonData={"ResTable":[ 
    {"upload_time":"Sat May 26 20:16:37 CST 2012","title":"hello","flash_path":"./Image/0.gif","uploader":"王二","thumb_path":"./Image/0.gif","desc3":"","desc4":"","desc1":"可疑車輛0","desc2":""}, 
    {"upload_time":"Sat May 26 20:16:37 CST 2012","title":"hello","flash_path":"./Image/1.gif","uploader":"王二","thumb_path":"./Image/1.gif","desc3":"","desc4":"","desc1":"可疑車輛1","desc2":""}], 
    "CmtTable": 
    [{"author":"王二","logo_path":"./Image/0.gif","comment":"hello","comment_time":"Sat May 26 20:16:37 CST 2012"}, 
    {"author":"王二","logo_path":"./Image/1.gif","comment":"hello","comment_time":"Sat May 26 20:16:37 CST 2012"} 
 ]}; 
*/ 
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)