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が提供するオブジェクトであればよい