ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript を使用して JSON 形式の文字列を構築する

JavaScript を使用して JSON 形式の文字列を構築する

高洛峰
高洛峰オリジナル
2016-11-28 09:50:311207ブラウズ

現在 Restful API を使用していて、Web プロジェクトを通じて JSON 形式の文字列応答を構築する必要がある場合、この記事は JavaScript を使用して JSON 形式の文字列を作成するのに役立ちます。これは非常に便利です。jQuery プラグイン $.toJSON を通じてデータ オブジェクトを json 形式に変換します。

JavaScriptを使用してJSON形式の文字列を構築します

JavaScriptコード:

ここにはJavaScriptコードが含まれています。 $("#form").submit(function(){}- delete_button はフォーム タグの ID です。element.val() を通じてフォーム入力ボックスの値を呼び出します。コードは次のとおりです:

<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 = &#39;jsondata=&#39;+encodeURIComponent(jsonfy);
 
//Ajax Call
var url=&#39;website API URL&#39;;
post_data(url,encodedata, function(data) {
alert("Success");
});
 
}
 
});
 
});
</script">

HTML コード:

<form method=&#39;post&#39; action=&#39;&#39; id=&#39;form&#39;>
Name
<input type=&#39;text&#39; name=&#39;username&#39; id=&#39;username&#39;  />
Email
<input type=&#39;text&#39; name=&#39;email&#39; id=&#39;email&#39; />
Password
<input type=&#39;text&#39; name=&#39;password&#39; id=&#39;password&#39; />
Gender
<select name=&#39;gender&#39; id=&#39;gender&#39;><option value=&#39;male&#39;>Male</option><option value=&#39;female&#39;>Female</option></select>
Websites
<input type=&#39;text&#39; id=&#39;website1&#39; />
<input type=&#39;text&#39; id=&#39;website2&#39; />
<input type=&#39;text&#39; id=&#39;website3&#39; />
<input type=&#39;submit&#39; id=&#39;submit&#39;/>
</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

特殊文字をエンコードすると、次の文字がエンコードされます:, / ? : @ & = + $ #

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 %20玉田%22% 2C%22性別%22%3A%22男性%22%2C%22ウェブサイト%22%3A%5B%22www.9lessons.info%22%2C%22www.egglabs.in%22%2C%22www.flogin .com%22% 5D%7D%7D%7D

GetPostAjax.js

jqueryのajaxリクエストメソッドはここで定義されています

function post_data(url,encodedata, success){
$.ajax({
type:"POST",
url:url,
data :encodedata,
dataType:"json",
restful:true,
contentType: &#39;application/json&#39;,
cache:false,
timeout:20000,
async:true,
beforeSend :function(data) { },
success:function(data){
success.call(this, data);
},
error:function(data){
alert("Error In Connecting");
}
});
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。