html2json

by Jxck

Jxck /html2json

html2json & json2html

483 Stars 134 Forks Last release: Not found 129 Commits 8 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

html2json & json2html

How to use

browser

include htmlparser.js & html2json.js scripts:


node

$ npm install html2json
var html2json = require('html2json').html2json;
var json2html = require('html2json').json2html;

API

json === html2json(document.body.innerHTML);
html === json2html(json);

console.assert(json === html);

JSON format

every json has

node

members of

node
are
  • root
  • element
  • text
  • comment

root
node is the root of JSON, every JSON must have only one root
root
, could have
child
.

element
node represents html element, could have
tag
,
attr
,
child
.

text
node represents text element, could have
text
.

comment
node represents commment element, could have
text
.

Sample

html:

sample text with inline tag

foo
goo

json:

{
  node: 'root',
  child: [
    {
      node: 'element',
      tag: 'div',
      attr: { id: '1', class: 'foo' },
      child: [
        {
          node: 'element',
          tag: 'h2',
          child: [
            { node: 'text', text: 'sample text with ' },
            { node: 'element', tag: 'code', child: [{ node: 'text', text: 'inline tag' }] }
          ]
        },
        {
          node: 'element',
          tag: 'pre',
          attr: { id: 'demo', class: ['foo', 'bar'] },
          child: [{ node: 'text', text: 'foo' }]
        },
        {
          node: 'element',
          tag: 'pre',
          attr: { id: 'output', class: 'goo' },
          child: [{ node: 'text', text: 'goo' }]
        },
        {
          node: 'element',
          tag: 'input',
          attr: { id: 'execute', type: 'button', value: 'execute' }
        }
      ]
    }
  ]
}

Dependencies

htmlparser.js

repositry includes this at

lib/
as git subtree.

CHANGELOG

before 1.0.0

  • Basically inline tag is melted into text
  • Input
    ,
    textarea
    ,
    image
    tags are act like block tag

License

MIT

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.