4

サイトからJSONを取得して解析する必要があります。問題は、オブジェクトの名前が「-1」、「-2」などであるということです。

解析しようとすると、Firebugは「TypeError:obj is undefined length=obj.length」と表示されます。

Chromeには、「Uncaught TypeError:Undefinedのプロパティ'length'を読み取れません」という同様のメッセージが返されます。

参考までに、JSONの概要を次に示します。

{
  "-1": {
     "number": 47,
     "properties": [
       [

そして、これが私が使おうとしているコードです。

$.getJSON("http://www.website.com/builds?select=-1&select=-10",function(data){
  $.each(data.-1, function(info,value){

JSONをダウンロードしてローカルに保存し、「-1」の名前を「one」に変更し、「-2」の名前を「two」に変更すると、正常に機能します。たとえば、JSONは次のようになります。

{
  "one": {
     "number": 47,
     "properties": [
       [

そして私のコードは

$.getJSON("C:\json.json",function(data){
    $.each(data.one, function(info,value){

これは正常に機能しますが、別の複雑な手順が追加されます。

元のJSONを解析する方法はありますか(サーバーから自動的に生成され、頻繁に変更されるため)、または解析する前にローカルに保存してオブジェクト名を変更する方法を見つけようとして立ち往生していますか?

4

1 に答える 1

7

data.-1角かっこ表記を使用して文字列として参照する必要があります。

data["-1"]

于 2013-01-24T20:01:36.940 に答える