... Uncaught TypeError:「in」演算子を使用して{jsondata}の「length」を検索することはできません



Uncaught Typeerror



1.コンソール印刷によって返されるデータは次のとおりです。

[Web browser] '{d:[{'col':7,'row':7, 'size_x':5,'size_y':5,'id':'1','text':'area1'}, {'col':7,'row':7, 'size_x':5,'size_y':5,'id':'2','text':'area2'}, {'col':7,'row':7, 'size_x':5,'size_y':5,'id':'12','text':'A12'}] }'

2.これは、最終的に正常にデバッグされたコードブロックです。

画像

3.デバッグ経験:

(1)Webサービスによって返されるデータがフォアグラウンドページで解析される場合、次のように記述する必要があります。



success: function(data) { var Parse the final data = data.d }

そうしないと、目的の分析データが得られません。
(2)。遭遇した場合

...Uncaught TypeError: Cannot use 'in' operator to search for“length”in { array }

解決:

JSON文字列はJavaScriptオブジェクトに変換されます。これを修正するには、標準のJSON.parse()またはjQueryの$ .parseJSONを介してJavaScriptオブジェクトに変換します。



以前に表示されたコードを解析できません:

$.each(serialization, function() { gridster.add_widget('
  • ' + this.text + '
  • '
    , this.size_x, this.size_y, this.col, this.row, '', '', this.id) })

    最後に、デバッグされたコードを変更します。

    $.each(JSON.parse(serialization), function() { gridster.add_widget('
  • ' + this.text + '
  • '
    , this.size_x, this.size_y, this.col, this.row, '', '', this.id) })

    (3)
    json形式のデータまたはjsonファイルにアクセスする場合、JSON.parseは必要ありません。そうでない場合は、次のように表示されます。'UncaughtSyntaxError:Unexpected token u'JSON.parseなどのエラー。JSON.parseがパラメーターを渡すと、この例外が発生します。定義されていない場合に発生します。