JSONノート
3344 ワード
JSON(JavaScript Object Notation)は、軽量級のデータ交換フォーマットであり、言語とは完全に独立したテキスト形式を採用し、理想的なデータ交換フォーマットである.同時に、JSONはJavaScript原生フォーマットであり、これはJava ScriptでJSONデータを処理するには特別なAPIまたはツールバッグが必要ではないことを意味する. JSON文法規則 ●データは名称/値ペアにあります. ●データはカンマで区切られています. ●かっこの保存先 ●四角い括弧保存配列(1).一つのオブジェクトは「{」(左括弧)で始まり、「}」(右括弧)で終了します.各「名称」の後に「:」(コロン);「名前/値ペア」の間に「、」(カンマ)で区切られます.名称を引用符で囲む.値が文字列の場合は括弧が必要で、数値型は不要です.(2)配列は値(value)の規則的な集合である.配列は「[](左中かっこ)で始まり、'』(右中かっこ)で終了します.値の間に「,」(コンマ)で区切られます.{ 「employees」:[ {first Name”:John、“lastName”:“Dooe” {first Name”:Anna、“lastName”:“Smith”} {first Name”:「Peter」、「lastName」:「Jones」} ]}JSONデータを便利に処理するために、JSONはjson.jsパッケージを提供しています.http://www.json.org/json.jsデータ伝送プロセスでは、jsonはテキスト、すなわち文字列で伝達され、JSはJSONオブジェクトで動作するので、JSONオブジェクトとJSON文字列との間の相互変換が鍵となる. JSON文字列: var str 1='{name]:「cxh」,「sex」:「man」'; JSONオブジェクト: var str 2={「name」:「cxh」,「sex」:「man」} 一、JSON文字列をJSONオブジェクトに変換する 上のstr 1を使うには、下の関数を使ってまずJSONオブジェクトに変換しなければなりません. //JSON文字列からJSONオブジェクトに変換 var obj=eval('++str+')) var obj=str.parseJSON()//JSON文字列からJSONオブジェクトに変換する または var obj=JSON.parse(str)//JSON文字列からJSONオブジェクトに変換する その後、このように読めます. Alert(obj.name) Alert(obj.sex) 特に注意してください.Objが本来JSONのオブジェクトであるなら、eval()関数変換後(複数回変換しても)JSONのオブジェクトですが、パーパーパージーJSON()関数を使って処理したら疑問があります. (文法異常を投げかける). 二、JSONString()またはグローバル関数JSON.strigify()を用いてJSONオブジェクトをJSON文字列に変換することができます. たとえば: var last=obj.toJSONString()//JSONオブジェクトをJSON文字に変換する または var last=JSON.strigify(obj)//JSONオブジェクトをJSON文字に変換する alert(last) 注意: 上記の複数の関数のうち、eval()関数はjsが持参したもの以外、他の複数の関数はJson.jsパッケージから来ています.新しいバージョンのJSONはAPIを修正し、JSON.strigify()とJSON.parse()を変更しました. 両方の関数はJavascriptの内部建設対象に注入され、前者はObject.toJSONString()となり、後者はString.parseJSON()となる. toJSONString()とパーパージー()関数が見つからないと、Jsonパッケージのバージョンが低すぎるということです.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../script/jquery-1.10.1.js"></script>
<style type="text/css">
</style>
<title>JavaScript JSON </title>
</head>
<body>
<div>
<input type="button" id="button1" value="JavaScript JSON " />
<div id="result" ></div>
</div>
<script type="text/javascript">
var obj = {
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
};
$("#button1").click(function() {
var strResult = "";
for(var i=0; i<obj.employees.length; i++) {
strResult += obj.employees[i].firstName + " " + obj.employees[i].lastName + "<br/>";
}
$("#result").html(strResult);
})
</script>
</body>
</html>