VB.NET проблема преобразования DataTable в JSON - PullRequest
1 голос
/ 22 февраля 2010

Хорошо, поэтому я пытаюсь использовать JavaScriptSerializer для работы с этим кодом. Однако он падает, когда достигает последней строки;

Dim json As New String(sr.Serialize(dt))

Я получаю это сообщение об ошибке;

Обнаружена круговая ссылка при сериализации объекта типа 'System.Reflection.Module'.

Буду очень признателен за любые идеи, которые могут помочь решить эту проблему.

Ответы [ 2 ]

4 голосов
/ 22 февраля 2010

Круговая ссылка означает, что сериализация объекта приведет к бесконечному циклу. Например, если вы попытаетесь сериализовать объект "A", имеющий ссылку от 1 до 1 на объект "B".

Объявите класс, содержащий данные, которые вы хотите сериализовать с JSON, для решения этой проблемы.

2 голосов
/ 22 февраля 2010

Как уже сказал hkda150, вы можете использовать класс, специально предназначенный для сериализации.

Кроме того, это позволит вам сериализовать значения внешнего ключа вместо сериализации связанных полных объектов. Таким образом, если вы сериализуете объект a, который имеет свойство a.SomeB типа B, то вам часто нужно, чтобы идентификатор a.someB присутствовал на вашей веб-странице. Очевидно, я не знаю достаточно, чтобы сказать, уместно ли это в вашем конкретном случае использования.

Кстати, если вы обнаружите, что делаете много сопоставлений между "бизнес-объектами" и "объектами, предназначенными для сериализации", вы можете рассмотреть возможность использования AutoMapper .

...