2017-12-28 4 views
2

HTML-String als JSON-Ausgabe mit C#.HTML-String als JSON-Ausgabe mit C#

Ich möchte jede Instanz von ", das ist zwischen HTML-Wrapper < und> mit", während der Konvertierung in JSON ersetzen. Zur gleichen Zeit, wenn es Text mit "Zitat hat, sollte es nicht mit dem 'Zitat ersetzt werden . Z.B. "since the 1500s"

-Code -, die alle "zu" zitiert

public string Content 
{ 
    get 
    { 
     return _content; 
    } 
    set 
    { 
     if (value != null) 
     { 
      this._content = this._content.Replace("\"", "'");  
     } 
    } 
} 

Ich erhalte Zeichenfolge in dieser Form von meiner Ansicht

E.g. model.Content = "<p> Lorem Ipsum is simply dummy text of the printing <span id= "#" ids= "#" display= "inline" ></ span > and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever "since the 1500s".<br></p>"; 

I

bin mit JsonConvert.SerializeObject ersetzt.
string output = JsonConvert.SerializeObject(model, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); 

Erwartete string - Alle doppelte Anführungszeichen in den HTML-Tags sollten con Verted in einfache Anführungszeichen, aber der Text zitiert sollte so sein, wie es mit C#

+1

Können Sie mehr Informationen, bitte. Warum sollten doppelte Anführungszeichen beispielsweise in einfache Anführungszeichen umgewandelt werden? Wie konvertieren Sie es in JSON, etc? – john

+0

Ist eine Methode von C#, diese Ausgabe zurückzugeben? Weitere Informationen –

+0

Verwenden Sie JSON.NET oder JavaScriptSerializer oder einen anderen Serializer? – Sagar

Antwort

1

Ich glaube, Sie jede Instanz ersetzt werden sollen“, dass zwischen einem < und a> mit‘

Also, Sie sehen für jeden. "In der Zeichenfolge, schaut hinter für eine <, und weiter für ein>. Die Regex wie folgt aussieht:.

(?<=\<[^<>]*)"(?=[^><]*\>) 

So Sie

outputString = Regex.Replace(inputString, "(?<=\\<[^<>]*)\"(?=[^><]*\\>)", "'"); 

verwenden könnte Und dann wollen Sie andere Flucht "in der Zeichenfolge für das Sie

outputString = outputString.Replace(@"""", @"\"""); 

OR

verwenden könnte
outputString = outputString.Replace("\"", "\\\""); 

erstelle ich eine Konsole app lication testen diese,

Console.WriteLine("Enter The String : "); 
string input = Console.ReadLine();   
string pattern = "(?<=\\<[^<>]*)\"(?=[^><]*\\>)"; 
string output = Regex.Replace(input, pattern, "'"); 
output = output.Replace(@"""", @"\"""); 
Console.WriteLine(output); 
Console.ReadKey(); 

Eingabezeichenfolge ist die Zeichenfolge, die Sie zur Verfügung gestellt und dann wird der Ausgang sein,

<p> Lorem Ipsum is simply dummy text of the printing <span id= '#' ids= '#' display= 'inline' ></ span > and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever \"since the 1500s\".<br></p> 
+0

Ja, Sie haben Recht, aber dieser Ausdruck funktioniert nicht – Jack

+0

Können Sie mir den Code zeigen, wo Sie die Zeichenfolge zu lesen? – imanshu15

+0

aktualisiert die Frage – Jack

0

ist Besser ersetzen alle Doppel (") durch (\"). Auf diese Weise können Sie das doppelte Anführungszeichen als Teil von string speichern. Foe Beispiel:

string storeValue = "Subash \"Kharel\"";