on master help sign in
Add JSON library and make pretty printing for JSON work.
commitf39142db126c8bf82b23f601192b2521083ca2ab authorevancz <info@elm-lang.org> dateSat 28 Jul 2012, 22:59 (14 years ago) parent3b5dea9
2 files changed+24−24
core-js/Value.js+1−1 core-js/foreign/JSON.js+23−23
core-js/Value.js+1−1
@@ -81,7 +81,7 @@ var Value = function(){
8181 } else if (v[0] === "Nil") {
8282 return "[]";
8383 } else if (v[0] === "JSON") {
84− return "JSON " + ElmJSON.toJSString(v);
84+ return "(JSON.fromList " + toString(ElmJSON.toList(v)) + ")";
8585 } else {
8686 var output = "";
8787 for (var i = v.length; --i; ) {
core-js/foreign/JSON.js+23−23
@@ -41,12 +41,12 @@ var ElmJSON = function() {
4141 };
4242 }
4343
44− function JSString(v) { return [ "JSString", v ]; }
45− function JSNumber(v) { return [ "JSNumber", v ]; }
46− function JSBool(v) { return [ "JSBool", v ]; }
47− var JSNull = [ "JSNull" ];
48− function JSArray(v) { return [ "JSArray", v ]; }
49− function JSObject(v) { return [ "JSObject", v ]; }
44+ function JsonString(v) { return [ "JsonString", v ]; }
45+ function JsonNumber(v) { return [ "JsonNumber", v ]; }
46+ function JsonBool(v) { return [ "JsonBool", v ]; }
47+ var JsonNull = [ "JsonNull" ];
48+ function JsonArray(v) { return [ "JsonArray", v ]; }
49+ function JsonObject(v) { return [ "JsonObject", v ]; }
5050
5151 function toList(json) {
5252 var obj = json[1];
@@ -68,16 +68,16 @@ var ElmJSON = function() {
6868 function toPrettyJSString(sep) { return function (obj) {
6969 function fromValue(v) {
7070 switch (v[0]) {
71− case 'JSNull' : return null;
72− case 'JSString' : return JS.castStringToJSString(v[1]);
73− case 'JSObject' :
71+ case 'JsonNull' : return null;
72+ case 'JsonString' : return JS.castStringToJSString(v[1]);
73+ case 'JsonObject' :
7474 var o = {};
7575 var from = v[1][1];
7676 for (var i in from) {
7777 o[i] = fromValue(from[i]);
7878 }
7979 return o;
80− case 'JSArray' :
80+ case 'JsonArray' :
8181 var a = JS.castListToJSArray(v[1]);
8282 for (var i = a.length; i--; ) {
8383 a[i] = fromValue(a[i]);
@@ -87,23 +87,23 @@ var ElmJSON = function() {
8787 return v[1];
8888 }
8989 }
90− return JSON.stringify(fromValue([ 'JSObject', obj ]), null, JS.castStringToJSString(sep));
90+ return JSON.stringify(fromValue([ 'JsonObject', obj ]), null, JS.castStringToJSString(sep));
9191 };
9292 }
9393 function fromJSString(str) {
9494 var obj = JSON.parse(str);
9595 function toValue(v) {
9696 switch (typeof v) {
97− case 'string' : return [ "JSString", JS.castJSStringToString(v) ];
98− case 'number' : return [ "JSNumber", JS.castJSNumberToFloat(v) ];
99− case 'boolean' : return [ "JSBool", JS.castJSBoolToBool(v) ];
97+ case 'string' : return [ "JsonString", JS.castJSStringToString(v) ];
98+ case 'number' : return [ "JsonNumber", JS.castJSNumberToFloat(v) ];
99+ case 'boolean' : return [ "JsonBool", JS.castJSBoolToBool(v) ];
100100 case 'object' :
101− if (v === null) return [ "JSNull" ];
101+ if (v === null) return [ "JsonNull" ];
102102 for (var i in v) {
103103 v[i] = toValue(v[i]);
104104 }
105− if (v instanceof Array) return [ "JSArray", JS.castJSArrayToList(v) ];
106− return [ "JSObject", [ "JSON", v ] ];
105+ if (v instanceof Array) return [ "JsonArray", JS.castJSArrayToList(v) ];
106+ return [ "JsonObject", [ "JSON", v ] ];
107107 }
108108 }
109109 for (var i in obj) {
@@ -126,12 +126,12 @@ var ElmJSON = function() {
126126 fromString : function(v) { return fromJSString(JS.castStringToJSString(v)); },
127127 toList : toList,
128128 fromList : fromList,
129− JSString : JSString,
130− JSNumber : JSNumber,
131− JSBool : JSBool,
132− JSNull : JSNull,
133− JSArray : JSArray,
134− JSObject : JSObject
129+ JsonString : JsonString,
130+ JsonNumber : JsonNumber,
131+ JsonBool : JsonBool,
132+ JsonNull : JsonNull,
133+ JsonArray : JsonArray,
134+ JsonObject : JsonObject
135135 };
136136}();
137137