jsonを巡るときにlengthがオブジェクトを見つけられない問題を解決する
3368 ワード
<script type="text/javascript">
//1. json ,
var json = {"options":"[{\"text\":\" \",\"value\":\"9\"},{\"text\":\" \",\"value\":\"10\"},{\"text\":\" \",\"value\":\"13\"}]"}
json = eval(json.options)// options, Options , json.options.length
for(var i=0; i<json.length; i++)
{
alert(json[i].text+" " + json[i].value)//
}
</script>
注意:通常、以上の方法は遍歴可能であるが、jsonがパラメータとして伝達する場合、以下のように$.ajax({type:[POST],url:[jsonAjax.html],data:{oname:subA.innerHTML},dataType:[text],//ajax戻り値をtextに設定する(json形式でも返すことができ、結果を印刷したり、jsonに設定したりすることができる)success:function(json){alert(json);//ここで出力するのは{options:[{text":"王家湾","value":""9"},{"text":""李家湾","value":""10"},{"text":"邵家湾","value""13"}}とフォーマットデータは完全に同等であるが,赤色を付けないとlengthが空であるか対象でないか,あるいは火狐にjson undefindが報告されたエラーjson=JSON.parse(json);//このjson=eval(json.options)を加える必要があります. alert(json.length); for(var i=0; i
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
>
<
title
>孟憲会:JSONテスト
<
body
>
<
script
type
="text/javascript"
>
alert(typeof JSON);
方法2:X-UA-compatibleヘッダの設定
<
html
>
<
head
>
<
meta
http-equiv
="X-UA-Compatible"
content
="IE=edge"
>
<
title
>孟憲会:JSONテスト
<
body
>
<
script
type
="text/javascript"
>
alert(typeof JSON);
または
<
html
>
<
head
>
<
meta
http-equiv
="X-UA-Compatible"
content
="IE=8"
>
<
title
>孟憲会:JSONテスト
<
body
>
<
script
type
="text/javascript"
>
alert(typeof JSON);
実際のプログラミングプログラムの場合、一番いい方法は判断することであり、オリジナルのJSONをサポートしなければjson 2になる.jsが提供するオブジェクトであればよい