JQuery処理jsonとajaxはJSONインスタンスコードを返す

2646 ワード

一、[size=medium][color=black][b]JSONの基礎知識[/b][/color][/size].
JSONではオブジェクトは"{}"で識別され、1つの"{}"はオブジェクトを表し、例えば{"AreaId":"123"}であり、オブジェクトの値はキー値ペアの形式(key:value)である.
「[]」は、配列を識別し、配列内の各データ間を「,」で分割します.例えば、["AreaId":"123","AreaId":"345"]です.
多くの場合、オブジェクト配列です.
[{"AreaId":"123"},{"AreaId":"345"}]

実は配列もオブジェクトで、上のフォーマットもこのように書くことができます.
{"Area":[{"AreaId":"123"},{"AreaId":"345"}]}

これは1つのAreaオブジェクトを表し、彼は2つのサブデータを持っており、各サブデータも1つのオブジェクトであり、各サブオブジェクトはAreaIdである.
JSONにおける文字列と文字の定義形式は、一般的なクラスC言語定義と類似しており、二重引用符定義文字列、一重引用符定義文字である.
JSONのキー(Key)は二重引用符で囲まれており、例えば上の「Area」や「AreaId」は二重引用符で囲まれており、一部の言語でJSON文字列を構築する際には、エスケープ文字を用いて二重引用符をエスケープすることができる.
二、[size=medium][color=black][b]javascript操作JSON文字[/b][color][size]
1、JSON文字列とJSONオブジェクトを区別する
JSON文字列:
Var strJSON = "{"Area":[{"AreaId":"123"},{"AreaId":"345"}]}",

実際にはこう書くこともできます.
Var strJSON = ‘{"Area":[{"AreaId":"123"},{"AreaId":"345"}]}',

これはJSON文字列を表しています.Jsでは一重引用符と二重引用符のどちらも一つの文字列を表すことができるので、上の最初の二重引用符と二番目の二重引用符のどちらもJSON文字列を表しています.
JSONオブジェクトを見てみましょう
var JSON = {"Area":[{"AreaId":"123"},{"AreaId":"345"}]},

見たでしょう、JSONオブジェクトの一番外側には一重引用符や二重引用符がありません.これはJSONオブジェクトを表しています.
jsに戻った処理:
1つ目はvarl変換に使用します.文字列の場合はevalでjqueryオブジェクトに変換します(以下).
var arr = '{"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}}';//u71d5u5b50   php      
var dataObj = eval("("+arr+")");// , json ,
$.each(dataObj,function(idx,item){
//
alert(item.id+" "+item.name);
})

2つ目:変換する必要はありません:
var arr = {"red":{"id":1,"name":"mary"},"blue":{"id":2,"name":"u71d5u5b50"}};
$.each(arr,function(idx,item){
//
alert(item.id+" "+item.name);
})

ループには2つの方法があります.
//方法一:
$.each(arr,function(idx,item){     
//
alert(item.id+" "+item.name);
})

//方法2:
for(var key in arr){
alert(key);
alert(arr[key].status);
}

参照先:http://www.jb51.net/article/45182.htm