web-dev-qa-db-ger.com

Schreibe HTML-String in Json

Ist es möglich einen HTMLstring in JSON zu schreiben?

Was ich wie unten in meine Json-Datei schreiben möchte

[
    {
        "id": "services.html",
        "img": "img/SolutionInnerbananer.jpg",
        "html": "<h2class="fg-white">AboutUs</h2><pclass="fg-white">developing and supporting complex IT solutions.Touchingmillions of lives world wide by bringing in innovative technology </p>"
    }
]
12
Rasmikant

Sie sollten die Zeichen in doppelte Anführungszeichen setzen, indem Sie "\" hinzufügen.

zB: <h2 class=\"fg-white\">

24
Sahil Mittal

Sie können, nachdem Sie den HTML-Code korrekt entkommen haben . Diese Seite zeigt, was zu tun ist. 

Wenn Sie PHP verwenden, können Sie json_encode () verwenden.

Hoffe das hilft :)

6
flauntster

Kodieren Sie einfach HTML mit dem Base64-Algorithmus, bevor Sie HTML zum JSON hinzufügen, und dekodieren Sie HTML mit Base64, wenn Sie lesen.

byte[] utf8 = htmlMessage.getBytes("UTF8");
htmlMessage= new String(new Base64().encode(utf8));


byte[] dec = new Base64().decode(htmlMessage.getBytes());
htmlMessage = new String(dec , "UTF8");
5
Mahesh

Es ist möglich, einen HTML-String in JSON zu schreiben. Sie müssen nur Ihre Anführungszeichen umgehen.

[
    {
        "id": "services.html",
        "img": "img/SolutionInnerbananer.jpg",
        "html": "<h2class=\"fg-white\">AboutUs</h2><pclass=\"fg-white\">CSMTechnologiesisapioneerinprovidingconsulting,
        developingandsupportingcomplexITsolutions.Touchingmillionsoflivesworldwidebybringingininnovativetechnology,
        CSMforayedintotheuntappedmarketslikee-GovernanceinIndiaandAfricancontinent.</p>"
    }
]
3
Ben

Der einfachste Weg ist, den HTML-Code in einfache Anführungszeichen zu setzen. Und das modifizierte Json-Objekt sieht folgendermaßen aus:

[
    {
        "id": "services.html",
        "img": "img/SolutionInnerbananer.jpg",
        "html": '<h2 class="fg-white">AboutUs</h2><p class="fg-white">developing and supporting complex IT solutions.Touchingmillions of lives world wide by bringing in innovative technology </p>'
    }
];

Fiddle .

Die beste Möglichkeit ist, die doppelten Anführungszeichen und andere Zeichen mit Escapezeichen zu versehen. Das modifizierte Json-Objekt sieht folgendermaßen aus:

[
    {
        "id": "services.html",
        "img": "img/SolutionInnerbananer.jpg",
        "html": "<h2 class=\"fg-white\">AboutUs</h2><p class=\"fg-white\">developing and supporting complex IT solutions.Touchingmillions of lives world wide by bringing in innovative technology </p>"
    }
];

Fiddle .

1
user2466202

Nehmen wir an, ich versuche, den folgenden HTML-Code zu rendern.

let myHTML = "<p>Go to this <a href='https://google.com'>website </b></p>";

JSON.parse(JSON.stringify(myHTML)) Damit erhalten Sie ein HTML-Element, das Sie mit innerHTML setzen können.

So document.getElementById("demo").innerHTML = JSON.parse(JSON.stringify(myHTML));

Die Leute speichern ihren HTML-Code als Objekt hier . Die von mir vorgeschlagene Methode funktioniert jedoch genauso, ohne ein Objekt verwenden zu müssen.

0
Rahul Makhija

Sie sollten auch den Schrägstrich entziehen, hier ist der richtige JSON:

[{
"id": "services.html",
"img": "img/SolutionInnerbananer.jpg",
"html": "<h2class=\"fg-white\">AboutUs<\/h2><pclass=\"fg-white\">developing and supporting complex IT solutions.Touchingmillions of lives world wide by bringing in innovative technology <\/p>"
}]
0
Lydia halls

4 Dinge, die Sie tun müssen, wenn Sie HTML in JSON einfügen:

1) Escape-Anführungszeichen für HTML-Attribute wie folgt <img src=\"someimage.png\" />

2) Verbergen Sie den Schrägstrich in HTML-End-Tags. <div>Hello World!<\/div>. Dies ist ein uraltes Artefakt einer alten HTML-Spezifikation, bei der HTML-Parser nicht verwirrt werden sollten, wenn Zeichenfolgen in ein <SCRIPT> - Tag eingefügt werden. Aus irgendeinem Grund gefällt es den heutigen Browsern immer noch.

3) Dieser war total bizarr. Sie sollten bei selbstschließenden Tags ein Leerzeichen zwischen dem Tag-Namen und dem Schrägstrich einfügen. Ich habe keine Ahnung, warum das so ist, aber in den meisten modernen Browsern, wenn Sie versuchen, mit Javascript ein <li> - Tag als untergeordnetes Element einer ungeordneten Liste anzuhängen, die folgendermaßen formatiert ist: <ul/> wird nicht funktionieren. Es wird nach dem ul-Tag zum DOM hinzugefügt. Wenn der Code jedoch wie folgt aussieht: <ul /> (Beachten Sie das Leerzeichen vor dem /), funktioniert alles einwandfrei. Sehr seltsam.

4) Stellen Sie sicher, dass Sie alle Anführungszeichen codieren, die in (fehlerhaften) HTML-Inhalten enthalten sein können. Dies ist das einzige, was den JSON wirklich zum Erliegen bringt, wenn der String versehentlich vorzeitig beendet wird. Alle Zeichen " Sollten als &quot; Codiert werden, wenn sie als HTML-Inhalt enthalten sein sollen.

via

0
k2fx

in json ist alles ein String zwischen doppelten Anführungszeichen ", also brauchen Sie ein Escape", wenn es im Wert vorkommt (nur beim direkten Schreiben), verwenden Sie einen Backslash \

und alles in der JSON-Datei, die in {} eingeschlossen ist, ändert Ihren JSON in

{
  [
    {
      "id": "services.html",
      "img": "img/SolutionInnerbananer.jpg",
      "html": "<h2 class=\"fg-white\">AboutUs</h2><p class=\"fg-white\">developing and supporting complex IT solutions.Touching millions of lives world wide by bringing in innovative technology</p>"
    }
  ]
}
0
Iliya

Eine Möglichkeit besteht darin, die doppelten Anführungszeichen in HTML durch einfache Anführungszeichen zu ersetzen, die Verwendung von doppelten Anführungszeichen ist jedoch zur Standardkonvention für Attributwerte in HTML geworden.

Die bessere Option besteht darin, die doppelten Anführungszeichen in Json und anderen Zeichen, die maskiert werden müssen, zu umgehen.

Weitere Informationen zum Escaping finden Sie hier: Wo finde ich eine Liste der Escape-Zeichen, die für meinen JSON-Ajax-Rückgabetyp erforderlich sind?

Sie können den Bezeichner zu einem Parameter für einen Abfrageselektor machen. Verwenden Sie für PHP und kompatible Sprachen ein assoziatives Array (tatsächlich ein Objekt) und dann json_encode.

$temp=array('#id'  =>array('href'=>'services.html')
           ,'img'  =>array('src'=>"img/SolutionInnerbananer.jpg")
           ,'.html'=>'<h2 class="fg-white">AboutUs</h2><p class="fg-white">...</p>'
           );
echo json_encode($temp);  

Aber HTML macht es nicht ohne JS für Sie.

{"#id":{"href":"services.html"},"img":{"src":"img\/SolutionInnerbananer.jpg"}
 ,".html":"<h2 class=\"fg-white\">AboutUs<\/h2><p class=\"fg-white\">...<\/p>"}
0
B.F.