Need help with html2json?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

Jxck
497 Stars 137 Forks 129 Commits 18 Opened issues

Description

html2json & json2html

Services available

!
?

Need anything else?

Contributors list

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.