Jsonに関しては、あなたが知らないかもしれないもの.
3228 ワード
JSON:JavaScript Object Notation(javaScriptオブジェクト表示法)
JSONは名前/値ペアの構造である.
オブジェクトの一つは右括弧で始まります.兄の名前のあとがないです.コロンです.名前/値'ペアは'で、'カンマで区切られます.(最後のキーのペアはセミコロンではない)
ここの名前は「(セミコロン)」で起こします.誤報の可能性があります.
次のように表示してもいいです.
もちろん、配列を表す場合:
もちろん、複数の変数を表すこともできます.
jqueryで非同期転送をする場合、戻り対象タイプが指定されていない場合、または文字列で返します.
文字列をjsonオブジェクトに変換する必要があります.
以下のとおりです
なぜエヴァはここに「("++")」/」を追加しますか?
理由は、エヴァ自体の問題です.JSでは、jsonは「{}」という形で始まり、終了するため、文のブロックとして扱われるので、強制的に表現に変換しなければなりません.
括弧を入れる目的は、JavaScriptコードを処理する際に、文としてではなく、eval関数をオブジェクトに強制的に変換することです.例を挙げると、対象の字面量{}は、外層の括弧を入れないと、evalは、大きい括弧をJavaScriptコードブロックの開始と終了フラグとして認識します.{}空文が実行されたと思われます.したがって、次の二つの実行結果は違っています.alert(even)///return undefined alert(even)///return object[Object]
このような書き方はJSの中であちこち見られます.
例えば:(function){}(); クローズド操作をする時など.
もちろん、もしあなたが非同期要求をしていたら、Jsonの対象に戻るように指定されています.eval()の方法は不要です.直接使用できます.
例えば:
注:ここでは、eval()方式を使用して、文字列を動的に実行する場合、jsスクリプトでもありますので、システムセキュリティに問題があります.
eval()を回避した第三者スクリプトライブラリをいくつか採用することができます.
第二の解析方式は、Functionオブジェクトを使用して行われ、その典型的な応用は、JQUERYのAJAX方式におけるsuccessなどのリターンデータdataの解析である.
JSONは名前/値ペアの構造である.
オブジェクトの一つは右括弧で始まります.兄の名前のあとがないです.コロンです.名前/値'ペアは'で、'カンマで区切られます.(最後のキーのペアはセミコロンではない)
ここの名前は「(セミコロン)」で起こします.誤報の可能性があります.
次のように表示してもいいです.
{"name":"helloyangzhi"}
もちろん、複数で連絡してもいいです.{"name":"helloyangzhi","email":"[email protected]","age":"21"}
配列は規則的な集合であり、一つの配列は「左中括弧」で始まり、「」右中括弧で終わり、値の間は「、」カンマで区切られています.もちろん、配列を表す場合:
{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
]}
ここでは、1つのpeople変数を表します.後に3つのレコードが含まれます.もちろん、複数の変数を表すこともできます.
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
]}
実際の開発では、jsonの対象をjsの対象に割り当てられます.var json = {
"name":"yangzhi",
"email":"[email protected]"
}
これは方法の中で伝えることができます.jqueryで非同期転送をする場合、戻り対象タイプが指定されていない場合、または文字列で返します.
文字列をjsonオブジェクトに変換する必要があります.
以下のとおりです
var obj = eval("(" + data + ")");
このようにしてobjはobjオブジェクトに変換される.なぜエヴァはここに「("++")」/」を追加しますか?
理由は、エヴァ自体の問題です.JSでは、jsonは「{}」という形で始まり、終了するため、文のブロックとして扱われるので、強制的に表現に変換しなければなりません.
括弧を入れる目的は、JavaScriptコードを処理する際に、文としてではなく、eval関数をオブジェクトに強制的に変換することです.例を挙げると、対象の字面量{}は、外層の括弧を入れないと、evalは、大きい括弧をJavaScriptコードブロックの開始と終了フラグとして認識します.{}空文が実行されたと思われます.したがって、次の二つの実行結果は違っています.alert(even)///return undefined alert(even)///return object[Object]
このような書き方はJSの中であちこち見られます.
例えば:(function){}(); クローズド操作をする時など.
もちろん、もしあなたが非同期要求をしていたら、Jsonの対象に戻るように指定されています.eval()の方法は不要です.直接使用できます.
例えば:
$.post(url,{},function(){},"json");
では、ここでは戻りデータタイプをJsonオブジェクトに指定します.注:ここでは、eval()方式を使用して、文字列を動的に実行する場合、jsスクリプトでもありますので、システムセキュリティに問題があります.
eval()を回避した第三者スクリプトライブラリをいくつか採用することができます.
第二の解析方式は、Functionオブジェクトを使用して行われ、その典型的な応用は、JQUERYのAJAX方式におけるsuccessなどのリターンデータdataの解析である.
var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();
転載先:https://www.cnblogs.com/yangzhi/archive/2013/02/01/3576567.html