Online conversion and formatting tools for JSON, CSV and SQL.
PHP JavaScript Other
Latest commit 99f9874 Dec 30, 2016 @martindrapeau Removed unused files
Permalink
Failed to load latest commit information.
application
css Fix for GitHub issue #13. Added option to parse number values or not … Oct 7, 2016
img Created a home page. Fixed sitemap. Jan 15, 2014
js Removed unused files Dec 30, 2016
system Added license. Moved files around. Added copyright notices Dec 30, 2013
.gitignore
.htaccess Removed invalid reference. Dec 27, 2013
ISSUE_TEMPLATE.md Create ISSUE_TEMPLATE.md Oct 7, 2016
README.md Update README.md Jan 23, 2014
index.php Implemented upload of files. Only allow plain/text mime types. Dec 18, 2013
license.txt Changed copyright to 2014. Added footer. Jan 1, 2014
robots.txt
sitemap.xml Created a home page. Fixed sitemap. Jan 15, 2014

README.md

CSVJSON

www.csvjson.com are online formatting and conversion tools that I use as a developer.

  • CSV to JSON : Convert CSV (Excel) to JSON format.
  • SQL to JSON : Convert SQL (CREATE TABLE and INSERT INTO statements) to JSON format.
  • JSON Beautifier : Validate and format JSON. Convert it to Javascript code (drop quotes on keys).
  • More to come...

CSVJSON is built using PHP CodeIgniter, Bootstrap 3.0, Underscore, JSON, jsonlint, and other goodies.

Forking welcome: https://github.com/martindrapeau/csvjson-app

Installation

  1. Clone and drop inside a folder under a virtual host using your favorite WAMP or LAMP stack.
  2. Create a data directory at the same level as www. Saved data for permalinks get stored there.

CodeIgniter's index.php will start everything. If you plan to deploy in a production environment, edit it and change this with your domain name:

if (strpos($_SERVER['SERVER_NAME'], "csvjson.com") !== FALSE) {
    define('ENVIRONMENT', 'production');
} else {
    define('ENVIRONMENT', 'development');
}

If you use Apache, CSVJSON comes with a .htaccess all ready to go. Blocks remote access of sensible files like this README, .git, etc...

Extending

To add a new tool, best to look at an existing example. For example csv2json. Follow these steps:

  1. Create a controller (under application/controllers/). Must inherit MY_Controller.
  2. Create a view (under application/views/).
  3. Create the conversion Javascript file (under js/src/csvjson). This file will contain your new conversion function on the CSVJSON global.
  4. Create the UI Javascript file (under js/src/). This will drive the UI, and call your conversion function to do the work.
  5. Create a CSS file (under css) or you can put your CSS directly inside css/main.css.
  6. Update $config['assets'] located in the application/config/assets.php file and add reference to your Javascript and optionally CSS files.

You are then ready to code. In development (ENVIRONMENT=development), your Javascript and CSS files get loaded.

Deploy for production

To deploy for production, you must perform a build. Bundles are compiled in the Build controller (application/controllers/build.php). To perform a build, simply call the controller. Javascript bundles get built - minified and concatenated. For example, if you are developing under localhost, you would type in a browser

http://localhost/build

Built assets must then be committed to git. In production, built assets are loaded.

Directory Structure

--application
  --config
  --controllers
  --views
--system
--js
  --3rd
  --csvjson
  --src
--css

Directories application and system are those defined by CodeIgniter. Assets are located under js and css folders. 3rd party Javascript libraries are under js/3rd and application source code (the stuff you write) is under js/src. Bundled/minified Javascript files are directly under js.

FAQ

Q: What if I fund a bug or would like to propose an enhancement?
A: Report it via Github issues.

Q: What performs minification?
A: Javascript minification is done with a PHP implmentation of Douglas Crockford's JSMin. See application/libraries/jsmin.php for details. CSS minification comes from http://code.google.com/p/minify/. See application/libraries/cssmin.php.

Q: Does bundling and minification support CSS pre-processing like SASS, LESS or Stylus?
A: No. Feel free to fork and add it. Would be nice.