• 締切済み

aspx.csからJSON形式にする方法

こちらのサイト http://qiita.com/rbtnn/items/b2ec6c7dee792e66ac75 を参考に、DBで取得した値をJSON形式にしてjavascriptに渡したいです。 サイトのdynamic datasetにべた書きではなく、DBで取得したDatasetのデータを入れたところ、 型 'System.Globalization.CultureInfo' のオブジェクトのシリアル化を実行中に循環参照が見つかりました。 とエラーが発生してしまいました。 これはどうしたら解消できるのでしょうか。 最終的な目的は、GoogleMapのスクリプトに緯度経度や情報ウィンドウに表示させる値を渡して表示させたいと考えています。 JSON形式でaspx.csで作成した文字列をjsファイルに渡すのが一番よいという結論にいたったのですが、 他によい方法があればご指摘お願いします。

みんなの回答

  • shockatz
  • ベストアンサー率80% (153/191)
回答No.1

DataTableをそのままシリアライズすると、リレーションが定義されている場合など、そのような現象が起きます。 Membersテーブルで、所属マスタである Sections テーブルを参照している場合などで、Member に Section を参照するプロパティが存在すると、Section には Members を参照する属性が付加される、相互参照です。 なので、シリアライズする場合は、その項目(実際に値が入っているわけではない、単なる参照項目)をシリアライズ対象から外すか、相互参照属性の一方を一時的に削除するか、全く別のオブジェクトに値を「つめ換え」て、それをシリアライズするようにします。 値のマッピングには Automapper.NET を(すでにお使いなら蛇足ですが) http://mono-comp.com/programming/automapper

関連するQ&A