Архитектура шаблонов кэша JSON - PullRequest
0 голосов
/ 16 июня 2011

У меня есть объектная модель MyObject, которую я сериализую в строку json, и я храню эту строку в БД.Я хочу отправить несколько таких объектов на страницу.

Когда объекты выходят из БД, они помещаются в список объектов, называемый JsonCache, например:

    public class JsonCache
    {
      public int ObjectID {get;set;}
      public byte ObjectStatus {get;set;}
      public string MyObjectInJsonFormat {get;set;}
    }

List<JsonCache> MyListOfMyObjects = new List<JsonCache>();

MyObjectInJsonFormat - это строка, содержащая все свойства MyObject (9 списков вложенных объектов). Перед отправкой этого списка на страницу я сериализую его с помощью простого сериализатора, например:

JavaScriptSerializer ObjectSerializer = new JavaScriptSerializer();
string LeadsToPage = ObjectSerializer.Serialize(MyListOfObjects);

, а затем помещаюэта строка в литерале aspx, которая находится внутри div с именем MyDiv.

На странице клиента я пишу этот javascript:

var ObjectsFromServer = $('#MyDiv').html();
ObjectsInJson = eval(ObjectsFromServer);

Проблема заключается в том, что ObjectsInJson является массивом, который содержит JsonCacheобъектная модель со строкой ObjectInJsonFormat.Конечно, я мог бы рекурсивно оценивать, но это не то, чего я хочу.Я хочу, чтобы ObjectInJson был массивом MyObject.

Что мне нужно изменить, чтобы сделать эту работу?

Спасибо за ваши предложения.

1 Ответ

0 голосов
/ 16 июня 2011

Вы можете создать собственный сериализатор, например JavaScriptConverter для JsonCache и сделать что-то особенное для MyObjectInJsonFormat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...