这是一段文字。
` 相比,JSON 的表达方式更加冗长,而且不容易直观地理解其语义。HTML 的标签本身就包含了语义信息,而 JSON 需要额外的“type”字段来表达。用JSON编写网页并不会显得比HTML更方便,我曾经在Dorado和Cola这两个前端框架中提供过一种以JSON表达的HTML,用以优化在Javascript中拼装HTML的代码。
它们看起来大致是这个样子的....
{ class: 'header', content: [ { class: 'title', content: 'Title Text', style: { fontSize: '16pt' } }, { tagName: 'button', content: 'Test', click() { alert('Hello World.'); } } ] }
上面的代码大致相当于这样的HTML
<div class="header"> <div class="title" style="font-size:16pt"> Title Text </div> <button onclick="test()">Test</button> </div>
虽然在没有JSX的情况,上面基于JSON的写法的确可以解决很多结构性的问题,但是在易读性上还是存在不足。
在HTML结构化方面,Pug(以前叫Jade)可能是一个更好的选择。
自从6年前用上了Jade之后,我就感觉自己再也离不开它了。哪怕是在Java的项目中,我也会使用Jade解析器来替代Thymeleaf等模板引擎。
用Pug/Jade来编写上面等效的HTML代码大致是这样的...
.header .title(style="font-size:16pt") Title Text button(onclick="test()") Test
简直不要太清爽!!
1、JSON不可以替代XML,JSON的语法比XML少了很多东西,要完全达到XML的表现力需要增加大量的额外语法规约。
2、网页用不用JSON来写和JSON能不能替代XML没有半毛钱关系,正如同XHTML完全可以替代HTML,然则大家不买账。
综上所述,这是一个毫无逻辑不知所云的问题。
当然了,如果非要说ML系列语言在描述文档方面有什么相较于JSON的独特的优势的话。
那就是文本节点(TextNode)……
JSON或者其他结构化数据表达方式如果用来描述文档内容的话,文本节点支持的缺失会很麻烦。
简单来说,如果我们用HTML来输出一个Hello World,那么很简单:
Hello World
不用怀疑,这个看起来非常搞笑的形式是完全符合HTML语言规范的,任何一个浏览器都能正确的显示这段HTML。因为在HTML规范中,<html>、<head>、<body>元素都是可以省略的。
而且,文本元素不需要任何特殊的前后缀语法,所以,在HTML里面,输出Hello World就真的只需要Hello World就可以了。
而最简单的JSON却只能写成这样:
"Hello World"
而你要用JSON这种结构化数据描述语言来描述文档的话,是绝对没可能只用这么一点儿东西的,你至少得把DOM描述出来,那就成这样了:
{ "body": [ "Hello World" ] }
事实上我这里已经是针对JSON表达形式优化过的语法了。
当我们有内联样式的时候:
Hello <b>World</b>!
JSON因为缺乏文本节点,我们不得不结构化成这样:
{ "body": [ "Hello ", { "type": "b" "nodes": [ "World" ] }, "!" ] }
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有