●JSONとJavaScriptオブジェクトリテラルの覚書
【特徴】
・JSON(JavaScript Object Notation)
・JSONはJavaScriptオブジェクト・リテラルから派生した軽量サブセットな構造化データフォーマット。
・ゼロ個以上のプロパティ名と値のペアリスト。
・プリミティブタイプ(string,number,boolean,null)と構造化タイプ(objects,arrays)を表すことができる。
◇objectタイプ書式
object = { string : value }
object = { string : value , string : value , ...}
◇array タイプ書式
array = [ value , value ]
array = [ value , value , ...]
◇object+array(連想配列)
object =
[
{ string1-1 : value1-1, string1-2 : value1-2, …},
{ string2-1 : value2-1, string2-2 : value2-2, …},
…
{ stringN-1 : valueN-1, stringN-2 : valueN-2, …}
]
【JSON例】
Ⅰ.var jsonObject = { "test":"hogehoge" }
①alert(jsonObject);
②alert(jsonObject.test);
③jsonobject.test = "test2";alert(jsonObject);
---------------------------------------------------------
Ⅱ.var jsonObject =
{
"test1":"hogehoge1",
"test2":"hogehoge2"
}
①alert(jsonObject.test1);
②alert(jsonObject.test2);
---------------------------------------------------------
Ⅲ.JSONではメソッドも扱える
ⅰ.var jsonObject =
{
"test1":"function(){alert('Hello World')}"
}
①eval('var method='+ jsonObject.test1); //eval関数で解釈
method();
ⅱ.var jsonObject =
{
"test1":"function(arg){alert('Hello World'+ arg)}"
}
①eval('var method='+ jsonObject.test1); //eval関数で解釈
method('My Name');
---------------------------------------------------------
Ⅳ.入れ子にすると…
var myObject = {
"name":"My Name",
"kana":"My Kana",
"favorite": [
{ "title":"favaroite1", "url","http://hoge1.com"},
{ "title":"favaroite2", "url","http://hoge2.com"},
]
}
====================================================
【JavaScriptオブジェクト・リテラル例】
objectsタイプ書式:
jsobject = { string : "value" }
jsobject = { string : "value" , string : "value" , ...}
Ⅰ.var jsObject = { property1:"value1" , property2:"value2" }
①eval('var method='+ jsObject.property1);
====================================================
【相違点】
・JSONはプロパティ名と値の両方を「"」で括るのに対して
JavaScriptオブジェクト・リテラルは値のみ「"」で括る。
・JSON(JavaScript Object Notation)
・JSONはJavaScriptオブジェクト・リテラルから派生した軽量サブセットな構造化データフォーマット。
・ゼロ個以上のプロパティ名と値のペアリスト。
・プリミティブタイプ(string,number,boolean,null)と構造化タイプ(objects,arrays)を表すことができる。
◇objectタイプ書式
object = { string : value }
object = { string : value , string : value , ...}
◇array タイプ書式
array = [ value , value ]
array = [ value , value , ...]
◇object+array(連想配列)
object =
[
{ string1-1 : value1-1, string1-2 : value1-2, …},
{ string2-1 : value2-1, string2-2 : value2-2, …},
…
{ stringN-1 : valueN-1, stringN-2 : valueN-2, …}
]
【JSON例】
Ⅰ.var jsonObject = { "test":"hogehoge" }
①alert(jsonObject);
②alert(jsonObject.test);
③jsonobject.test = "test2";alert(jsonObject);
---------------------------------------------------------
Ⅱ.var jsonObject =
{
"test1":"hogehoge1",
"test2":"hogehoge2"
}
①alert(jsonObject.test1);
②alert(jsonObject.test2);
---------------------------------------------------------
Ⅲ.JSONではメソッドも扱える
ⅰ.var jsonObject =
{
"test1":"function(){alert('Hello World')}"
}
①eval('var method='+ jsonObject.test1); //eval関数で解釈
method();
ⅱ.var jsonObject =
{
"test1":"function(arg){alert('Hello World'+ arg)}"
}
①eval('var method='+ jsonObject.test1); //eval関数で解釈
method('My Name');
---------------------------------------------------------
Ⅳ.入れ子にすると…
var myObject = {
"name":"My Name",
"kana":"My Kana",
"favorite": [
{ "title":"favaroite1", "url","http://hoge1.com"},
{ "title":"favaroite2", "url","http://hoge2.com"},
]
}
====================================================
【JavaScriptオブジェクト・リテラル例】
objectsタイプ書式:
jsobject = { string : "value" }
jsobject = { string : "value" , string : "value" , ...}
Ⅰ.var jsObject = { property1:"value1" , property2:"value2" }
①eval('var method='+ jsObject.property1);
====================================================
【相違点】
・JSONはプロパティ名と値の両方を「"」で括るのに対して
JavaScriptオブジェクト・リテラルは値のみ「"」で括る。