我正在使用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})
答案 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});
因为你已经有了一个已定义的数据结构,所以不必使用正则表达式匹配模式&提取数据。