2009-04-13 14 views
0

開発中のWebアプリケーションにJSONを使用しています。しかし、さまざまな理由から、サービスコールのJSONレスポンスに基づいてクライアントスクリプトですでに定義されている「オブジェクト」を作成する必要があります。このために、JSONレスポンスに「新しい」ステートメントを挿入するために、正規表現を使用したいと思います。RegExを使用して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」メンバーが含まれています。

サンプル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

をうーん、あなたがそれを行うにはsimplier方法を作るしようとしない理由は?例えば:

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

確認後タイプ:その後、myJSON .__タイプ、およびそれがある場合、顧客、:

新しい顧客({ "ReferencedBy":新しい顧客({ "名前":myJSON.ReferencedBy。名前})、 "名前":myJSON.Name、 "アドレス":myJSON.Address});

すでにデータ構造が定義されているため、パターン&と一致する正規表現を使用する必要はありません。

+0

回答ありがとうございますが、ReferencedByメンバーの問題は解決しません。 私が投稿したサンプルは小さなテストケースに過ぎません。アプリケーションには数百種類の異なるタイプがあり、レスポンスJSONはオブジェクトの非常に複雑なウェブになる可能性があるので、文字列を変換する必要があります。 – cocogza

関連する問題