Ответ 1
Вам следует избегать символов, таких как двойные кавычки в строке html, добавив "\"
например: <h2 class=\"fg-white\">
Можно ли написать строку HTML внутри JSON?
Который я хочу написать, как показано ниже в моем файле 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>"
}
]
Вам следует избегать символов, таких как двойные кавычки в строке html, добавив "\"
например: <h2 class=\"fg-white\">
Вы можете, как только вы выйдете из HTML правильно. Эта страница показывает, что нужно сделать.
Если вы используете PHP, вы можете использовать json_encode()
Надеюсь, что это поможет:)
Просто закодируйте html с помощью алгоритма Base64, прежде чем добавлять html в JSON и декодировать html с помощью Base64 при чтении.
byte[] utf8 = htmlMessage.getBytes("UTF8");
htmlMessage= new String(new Base64().encode(utf8));
byte[] dec = new Base64().decode(htmlMessage.getBytes());
htmlMessage = new String(dec , "UTF8");
В JSON можно написать строку HTML. Вам просто нужно избегать двойных кавычек.
[
{
"id": "services.html",
"img": "img/SolutionInnerbananer.jpg",
"html": "<h2class=\"fg-white\">AboutUs</h2><pclass=\"fg-white\">CSMTechnologiesisapioneerinprovidingconsulting,
developingandsupportingcomplexITsolutions.Touchingmillionsoflivesworldwidebybringingininnovativetechnology,
CSMforayedintotheuntappedmarketslikee-GovernanceinIndiaandAfricancontinent.</p>"
}
]
Один из способов - заменить двойные кавычки в HTML одиночными кавычками, но использование двойных кавычек стало стандартным соглашением для значений атрибутов в HTML.
Лучший вариант - избежать двойных кавычек в json и других символов, которые нужно экранировать.
Вы можете получить более подробную информацию об экранировании здесь: Где я могу найти список escape-символов, необходимых для моего возвращаемого типа JSON ajax?
Вы также должны избегать косой черты, вот правильный 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>"
}]
Самый простой способ - поместить HTML внутри одинарных кавычек. И модифицированный объект json выглядит следующим образом:
[
{
"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>'
}
];
И наилучшим способом является esacape двойные кавычки и другие символы, которые должны быть экранированы. Измененный объект json выглядит следующим образом:
[
{
"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>"
}
];
Вы можете сделать идентификатор параметром для селектора запросов. Для PHP и совместимых языков используется ассоциативный массив (фактически объекты), а затем 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);
Но HTML не делает это для вас без каких-либо JS.
{"#id":{"href":"services.html"},"img":{"src":"img\/SolutionInnerbananer.jpg"}
,".html":"<h2 class=\"fg-white\">AboutUs<\/h2><p class=\"fg-white\">...<\/p>"}
4 вещи, которые вы должны сделать, помещая HTML в JSON:
1) Избегайте кавычек, используемых вокруг атрибутов HTML, например
<img src=\"someimage.png\"/>
2) Избегайте косой черты в конечных тегах HTML.
<div>Hello World!<\/div>.
Это древний артефакт старой спецификации HTML, который не хотел, чтобы синтаксические анализаторы HTML запутывались при помещении строк в<SCRIPT>
. По некоторым причинам сегодняшним браузерам все еще нравится это.3) Этот был совершенно странным. Вы должны включить пробел между именем тега и косой чертой на самозакрывающихся тегах. Я понятия не имею, почему это так, но в большинстве современных браузеров, если вы попытаетесь использовать javascript для добавления
<li>
в качестве дочернего элемента неупорядоченного списка, который отформатирован так:<ul/>
, он не будет работать. Он добавляется в DOM после тега ul. Но если код выглядит следующим образом:<ul/>
(обратите внимание на пробел перед /), все работает нормально. Очень странно.4) Обязательно закодируйте любые кавычки, которые могут быть включены в (плохой) контент HTML. Это единственная вещь, которая действительно сломает JSON, случайно завершив строку рано. Любые
"
символы должны быть закодированы как"
если предполагается, что они включены в контент HTML.
в json все это строка между двойными кавычками ", так что вам нужно бежать", если это происходит в значении (только в прямой записи), используйте обратную косую черту
и все в файле json, завернутом в {}, измените ваш json на
{
[
{
"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>"
}
]
}
Допустим, я пытаюсь визуализировать приведенный ниже HTML.
let myHTML = "<p>Go to this <a href='https://google.com'>website </b></p>";
JSON.parse(JSON.stringify(myHTML))
Это даст вам HTML-элемент, который вы можете установить с помощью innerHTML.
Нравится
document.getElementById("demo").innerHTML = JSON.parse(JSON.stringify(myHTML));
Люди хранят свой HTML как объект здесь. Однако метод, который я предложил, делает то же самое без использования объекта.