2009-04-13 7 views
0

Ich verwende JSON für eine Webanwendung, die ich entwickle. Aber aus verschiedenen Gründen muss ich "Objekte" erstellen, die bereits im Client-Skript basierend auf der JSON-Antwort eines Serviceaufrufs definiert sind. Dazu möchte ich einen Regex-Ausdruck verwenden, um die "neuen" Anweisungen in die JSON-Antwort einzufügen.Wie verwende ich RegEx zum Einfügen in eine JSON-Antwort?

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; 
    } 
} 

Die JSON-Antwort wird durch einen ASP.NET AJAX-Dienst zurückgegeben und es enthält ein „__type“ Element, das verwendet werden könnte, um den Objekttyp und legen Sie die „neue“ Erklärung zu bestimmen.

Beispiel JSON:

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

Ich habe dies so weit, aber es funktioniert nicht richtig mit dem ReferencedBy Mitglied:

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

Der resultierende String würde wie folgt aussehen.

Spiel:

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

ersetzen:

new Customer({$2}) 

Antwort

1

Hmmm, warum nicht Sie versuchen, eine einfachere Art und Weise zu machen, es zu tun? zB:

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

nach dem Check des Typ: myJSON .__ Typ, und wenn es sich um Kunden, dann gilt:

neuer Kunde ({ "ReferencedBy": neuer Kunde ({ "Name": myJSON.ReferencedBy. Name}), "Name": myJSON.Name, "Adresse": myJSON.Address});

Da Sie bereits eine definierte Datenstruktur haben, ist es nicht notwendig, regex zu verwenden, um das Muster & zu extrahieren.

+0

Danke für die Antwort, aber das wird das Problem mit dem Member ReferenzedBy nicht lösen. Das Beispiel, das ich gepostet habe, ist nur ein kleiner Testfall, es gibt Hunderte von verschiedenen Typen in der Anwendung und die Antwort JSON könnte ein sehr komplexes Netz von Objekten sein, also muss ich die Zeichenfolge transformieren. – cocogza

Verwandte Themen