Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript将json值转换为html?_Javascript_Html_Json_Template Literals - Fatal编程技术网

如何使用javascript将json值转换为html?

如何使用javascript将json值转换为html?,javascript,html,json,template-literals,Javascript,Html,Json,Template Literals,我正在获取一个json对象,如下所示: { title: "My entry", entry: "I am a paragraph. I have <em>italics</em> and other styling html. I am the second paragraph. I am the third graf,

我正在获取一个json对象,如下所示:

{
    title: "My entry",
    entry: "I am a paragraph. I have <em>italics</em> and other styling html. 
             
            I am the second paragraph. 
            
            I am the third graf, here is a <a href='#'>link</a>. "
}
{
标题:“我的作品”,
条目:“我是一个段落。我有斜体和其他样式的html。
我是第二段。
我是第三个格拉夫,这里有一个。”
}
然后我使用模板文本在页面上添加对象,如下所示

    const myJson = out.response.items.map((item, index) => {
      return `<div data-item="${index}">
                  <h2>${item.title}</h2>
                  ${item.entry}
              </div>`;
    });
    content.innerHTML = myJson;
constmyjson=out.response.items.map((item,index)=>{
返回`
${item.title}
${item.entry}
`;
});
content.innerHTML=myJson;

我遇到的问题是希望${item.entry}观察json中的html和段落分隔符。我该怎么做?

只需将所有换行符替换为

,并正确设置锚定标记的格式即可

const content=document.getElementById(“内容”);
常数数据=[{
标题:“我的作品”,
条目:“我是一个段落。我有斜体和其他样式的html。\n\n我是第二个段落。\n我是第三个段落,这里是一个。”
}]
const myJson=data.map((项,索引)=>{
返回`
${item.title}
${item.entry.replaceAll(“\n”,“
”) `; }); content.innerHTML=myJson
您可以使用以下正则表达式拆分
条目
/\s*\n\s*/g

const content=document.querySelector('.content');
常数输出={
答复:{
项目:[{
标题:“我的作品”,
条目:`我是一个段落。我有斜体和其他样式的html。
我是第二段。
我是第三个格拉夫,这里有一个`
}]
}
};
constmyhtml=out.response.items.map({title,entry},index)=>`
${title}
${entry.trim().split(/\s*\n\s*/g).map(p=>`${p}

`).join(“”)} `).加入(“”); content.innerHTML=myHtml 像这样的东西

var响应=[{
标题:“我的作品”,
条目:“我是一个段落。我有斜体和其他样式的html。\n我是第二段。\n\n我是第三段,这里是一个。”
}];
const myJson=response.map((项目,索引)=>{
var entries=item.entry.split('\n');
entries\u filtered=entries.filter(x=>x!='');
var entries\u html=entries\u filtered.map(ent=>`${ent}

`).join(“”); 返回` ${item.title} ${entries\u html} `; });
log(myJson)没有正确的答案,有效的方法将取决于您的HTML/CSS样式决定。正如下面提到的,您可以用

标记替换
/n

标记,或者您可以使用样式化的
div
/
span

什么是“graf breaks”意思?段落打断

好的,请参阅下面的我的内容。您可以简单地用
标记将其包装起来
${item.entry}
@stepd请检查这是否解决了您的问题,如果您有任何问题,请告诉我。数据来自google工作表,因此我无法更改json值的周围引号?@stepd您编写的数据是无效字符串,数据必须包含换行符的
\n
。json在控制台@StephD中看起来是这样的。我已经更新了我的答案。看一看,您只需用
br
标记替换字符串中的换行符即可。谢谢!我会在regex中查找links/italic/strong标记吗?@StephD难道你不需要将文字换行符之间的文本转换成单独的段落吗?就是这样。您正在使用
innerHTML
设置HTML值。我还想观察样式标记(,)和links@StephD在这种情况下,“观察”是什么意思?你能在你的问题中说明你期望的结果是什么吗。如果设置HTML,将显示标记。我不知道你是什么意思?