Как использовать RegEx для вставки в ответ JSON? - PullRequest
0 голосов
/ 13 апреля 2009

Я использую JSON для разрабатываемого веб-приложения. Но по разным причинам мне нужно создать «объекты», которые уже определены в клиентском скрипте на основе ответа JSON на вызов службы. Для этого я хотел бы использовать выражение регулярного выражения для вставки «новых» операторов в ответ JSON.

function Customer(cust)
{
    this.Name = null;
    this.ReferencedBy = null;
    this.Address = null;

    if (cust != null)
    {
        this.Name = cust.Name;
        this.ReferencedBy = cust.ReferencedBy;
        this.Address = cust.Address;
    }
}

Ответ JSON возвращается службой ASP.NET AJAX и содержит член «__type», который можно использовать для определения типа объекта и вставки оператора «new».

Образец JSON:

{"__type":"Customer", "ReferencedBy":{"__type":"Customer", "Name":"Rita"}, "Name":"Joseph", "Address":"123 {drive}"}

Результирующая строка будет выглядеть так:

new Customer({"ReferencedBy":new Customer({"Name":"Rita"}), "Name":Joseph", "Address":"123 {drive}"})

Пока я получил это, но он не работает с участником ReferencedBy.

спичка:

({"__type":"Customer",)(.*?})

заменить:

new Customer({$2})

1 Ответ

1 голос
/ 13 апреля 2009

Хммм, почему бы вам не попытаться сделать более простой способ сделать это? e.g.:

var myJSON =     {"__type":"Customer", "ReferencedBy":{"__type":"Customer", "Name":"Rita"}, "Name":"Joseph", "Address":"123 {drive}"};

после проверки типа: myJSON .__ type, а если это клиент, то:

новый клиент ({"ReferencedBy": новый клиент ({"Name": myJSON.ReferencedBy.Name}), "Name": myJSON.Name, "Address": myJSON.Address});

Это потому, что у вас уже есть определенная структура данных, нет необходимости использовать регулярные выражения для сопоставления с шаблоном и извлечения данных.

...