Code Monkey home page Code Monkey logo

lson's Introduction

LSON: LiveScript Object Notation Parser

Same API as the JSON module, but for LiveScript objects. Also supports CSON and JSON (since LSON is a superset of them).

Uses the LiveScript parser to do the actual parsing. Will not execute code.

Install

npm install lson

API

lson.parse: Given a string, returns an object.

lson.parseFile: Given a filename (extensions .lson and .json.ls are common), reads and parses it synchronously, and returns an object

lson.stringify: Given an object, returns a string (currently outputs pretty-printed JSON).

LSON format

LSON is a superset of JSON and CSON. Here is an example:

an_array: <[ an array of strings ]>
another_array: [
  'another'
  'array'
]
# we can even have comments
a_dict: {
  key: 'value'
}
a_string: 'some string'
another_string: \anotherstring

This corresponds to the following JSON:

{
  "an_array": [
    "an",
    "array",
    "of",
    "strings"
  ],
  "another_array": [
    "another",
    "array"
  ],
  "a_dict": {
    "key": "value"
  },
  "a_string": "some string",
  "another_string": "anotherstring"
}

Example

lson = require('lson')

parsed = lson.parse('''
an_array: <[ an array of strings ]>
another_array: [
  'another'
  'array'
]
# we can even have comments
a_dict: {
  key: 'value'
}
a_string: 'some string'
another_string: \\anotherstring
''')

console.log(lson.stringify(parsed))

Licence

MIT

Credits

Author: Geza Kovacs

lson's People

Contributors

gkovacs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

e-jigsaw

lson's Issues

parsing JSON

thanks for this handy package. i recently discovered LiveScript and have been hooked. now when writing config files i find myself doing \string w/o thinking ;) fortunately your module saved the day.

i am having one little issue while parsing JSON with this module. the following is valid JSON according to validators as well as being required no problem by node/io.js:

{
    "options":
    {
        "greeting": "ahoy!"
    }
}

though the validator does change the opening object literal brace:

{
    "options": {
        "greeting": "ahoy!"
    }
}

unfortunately your module, cson-safe and the newer cson-parser all throw a SyntaxError: unexpected newline on that newline before the opening brace.

i do not see anything about CSON being a superset of JSON at cson-parser, so i am just wondering if really LSON > CSON > JSON as far as superset goes, and thus if this is a problem with cson-parser (which seems most likely) and not your module.

again, a very little problem, just wanted to bring it to your attention. thanks again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.