如何使用RegEx插入JSON响应?

时间:2009-04-13 16:30:39

标签: regex json asp.net-ajax

我正在使用JSON来开发我正在开发的Web应用程序。但由于各种原因,我需要根据服务调用的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 个答案:

答案 0 :(得分:1)

嗯,你为什么不试着做一个更简单的方法呢? e.g:

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

检查类型:myJSON .__类型后,如果是客户,则:

new Customer({“ReferencedBy”:new Customer({“Name”:myJSON.ReferencedBy.Name}),“Name”:myJSON.Name,“Address”:myJSON.Address});

因为你已经有了一个已定义的数据结构,所以不必使用正则表达式匹配模式&提取数据。