All Projects → guedes → exjson

guedes / exjson

Licence: other
JSON parser and genarator in Elixir.

Programming Languages

erlang
1774 projects
elixir
2628 projects
Makefile
30231 projects

Labels

Projects that are alternatives of or similar to exjson

uniorg
An accurate Org-mode parser
Stars: ✭ 190 (+167.61%)
Mutual labels:  parse
djburger
Framework for safe and maintainable web-projects.
Stars: ✭ 75 (+5.63%)
Mutual labels:  parse
logparser
Easy parsing of Apache HTTPD and NGINX access logs with Java, Hadoop, Hive, Pig, Flink, Beam, Storm, Drill, ...
Stars: ✭ 139 (+95.77%)
Mutual labels:  parse
guessit-rest
REST API for guessit
Stars: ✭ 15 (-78.87%)
Mutual labels:  parse
how-much
💰 iOS price list app using Firebase, Realm & more
Stars: ✭ 22 (-69.01%)
Mutual labels:  parse
pp-toml
Paul's Parser for Tom's Own Minimal Language
Stars: ✭ 17 (-76.06%)
Mutual labels:  parse
BBob
⚡️Blazing-fast js-bbcode-parser, bbcode js, that transforms and parses to AST with plugin support in pure javascript, no dependencies
Stars: ✭ 133 (+87.32%)
Mutual labels:  parse
pfp-vim
A vim hex-editor plugin that uses 010 templates to parse binary data using pfp
Stars: ✭ 57 (-19.72%)
Mutual labels:  parse
spreadsheet
TypeScript/javascript spreadsheet parser, with formulas.
Stars: ✭ 40 (-43.66%)
Mutual labels:  parse
mpq
Decoder/parser of Blizzard's MPQ archive file format
Stars: ✭ 28 (-60.56%)
Mutual labels:  parse
TIFeedParser
RSS Parser written in Swift
Stars: ✭ 18 (-74.65%)
Mutual labels:  parse
section-matter
Like front-matter, but allows multiple sections in a single document.
Stars: ✭ 18 (-74.65%)
Mutual labels:  parse
lilt
LILT: noun, A characteristic rising and falling of the voice when speaking; a pleasant gentle accent.
Stars: ✭ 18 (-74.65%)
Mutual labels:  parse
info-bot
🤖 A Versatile Telegram Bot
Stars: ✭ 37 (-47.89%)
Mutual labels:  parse
pixl-xml
A simple module for parsing and composing XML.
Stars: ✭ 78 (+9.86%)
Mutual labels:  parse
fastproto
FastProto is a binary data processing tool written in Java.
Stars: ✭ 65 (-8.45%)
Mutual labels:  parse
json struct
json_struct is a single header only C++ library for parsing JSON directly to C++ structs and vice versa
Stars: ✭ 279 (+292.96%)
Mutual labels:  parse
read-env
🔧 Transform environment variables into JSON object with sanitized values.
Stars: ✭ 60 (-15.49%)
Mutual labels:  parse
parse-server-test-runner
A tool for programmatically starting Parse Server
Stars: ✭ 18 (-74.65%)
Mutual labels:  parse
PyScholar
A 'supervised' parser for Google Scholar
Stars: ✭ 74 (+4.23%)
Mutual labels:  parse

JSON for Elixir

Elixir implementation (with an Erlang parser) of the JSON specification to RFC 4627. ExJSON generate JSON string from keyword lists and maps and can parse into those structures also.

Installation

Add HTTPoison to your mix.exs dependencies:

def deps do
  [{:exjson, "~> 0.6.0"}]
end

and run $ mix deps.get.

Generating a JSON string from a keyword list

 ExJSON.generate([ key: "some value" ])
 #=> "{\"key\":\"some value\"}"

 ExJSON.generate([ k: [ 1, 2, 3 ] ])
 #=> "{\"k\":[1,2,3]}"

 ExJSON.generate([ k1: [ k2: [ k3: "v3" ] ] ])
 #=> "{\"k1\":{\"k2\":{\"k3\":\"v3\"}}}"

 ExJSON.generate([
    image: [
      width: 800,
      height: 600,
      title: "View from 15th Floor",
      thumbnail: [
        url: "http://www.example.com/image/481989943",
        height: 125,
        width: 100
      ],
      ids: [ 116, 943, 234, 38793 ]
    ]
 ])
 #=> "{\"image\":{\"height\":600,\"ids\":[116,943,234,38793],\"thumbnail\":{\"height\":125,\"url\":\"http://www.example.com/image/481989943\",\"width\":100},\"title\":\"View from 15th Floor\",\"width\":800}}"

Generating a JSON string from a map

 ExJSON.generate(%{
  location: %{
    lat: -47.8,
    lng:  23.8
  },
  name: "The name",
  phone: "666-6666",
  urls: [
   "http://example1.org",
   "http://example2.org"
  ]
 })
 #=> "{\"location\":{\"lat\":-47.8,\"lng\":23.8},\"name\":\"The name\",\"phone\":\"666-6666\",\"urls\":[\"http://example1.org\",\"http://example2.org\"]}"

Parsing JSON string to keyword list

 ExJSON.parse(
 '{
   "key": "value",
   "another_key": {
     "k1": "v1",
     "k2": "v2",
     "k3": "v3"
   }
 }')
 #=> [ { "key", "value" }, { "another_key", [ { "k1", "v1" }, { "k2", "v2" }, { "k3", "v3" } ] } ]

 ExJSON.parse(
 '{
    "key": "some value",
    "another_key": [ "value1", "another value", "value 3" ],
    "nested_key": {
      "inside_key": "a value",
      "bool_value1": true,
      "bool_value2": false,
      "nil_value": null
    },
    "tags": [ "test1", "test2", "test3" ]
 }')
 #=> [ { "key", "some value" }, { "another_key", [ "value1", "another value", "value 3" ] }, { "nested_key", [ { "inside_key", "a value" }, { "bool_value1", true }, { "bool_value2", false }, { "nil_value", nil } ] }, { "tags", [ "test1", "test2", "test3" ] } ]

Parsing JSON string to map

 ExJSON.parse('{
  "location": {
    "lat": -47.8,
    "lng": 23.8
  },
  "name": "The name",
  "phone": "666-6666",
  "urls": [
    "http://example1.org",
    "http://example2.org"
  ]
 }', :to_map)
 #=> %{"location" => %{"lat" => -47.8, "lng" => 23.8}, "name" => "The name", "phone" => "666-6666", "urls" => ["http://example1.org", "http://example2.org"]}

License

Copyright 2012,2013,2014 Dickson S. Guedes.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].