@@ -21,17 +21,29 @@ Elm.JSON = function() {
24 function lookup(key) { return function(obj) {
25 function lookup(key) { return function(obj) {
25 var k = JS.castStringToJSString(key);
26 var k = JS.castStringToJSString(key);
26 return obj[1].hasOwnProperty(k) ? Just(obj[1][k]) : Nothing ;
27 return obj[1].hasOwnProperty(k) ? Just(obj[1][k]) : Nothing ;
30+ function find(tipe,base) { return function (key) { return function(obj) {
31+ var k = JS.castStringToJSString(key);
32+ if (obj[1].hasOwnProperty(k)) {
34+ if (v[0] === tipe) { return v[1]; }
29 function lookupWithDefault(base) { return function(key) { return function(obj) {
40 function lookupWithDefault(base) { return function(key) { return function(obj) {
30 var k = JS.castStringToJSString(key);
41 var k = JS.castStringToJSString(key);
31 return obj[1].hasOwnProperty(k) ? obj[1][k] : base ;
42 return obj[1].hasOwnProperty(k) ? obj[1][k] : base ;
35 function remove(k) { return function(inObj) {
47 function remove(k) { return function(inObj) {
36 var obj = inObj[1];
48 var obj = inObj[1];
37 var outObj = {};
49 var outObj = {};
@@ -117,6 +129,9 @@ Elm.JSON = function() {
117 singleton : singleton,
129 singleton : singleton,
118 insert : insert,
130 insert : insert,
119 lookup : lookup,
131 lookup : lookup,
132+ findString : find("JsonString",["Nil"]),
133+ findObject : find("JsonObject", empty ),
134+ findArray : find("JsonArray" ,["Nil"]),
120 findWithDefault : lookupWithDefault,
135 findWithDefault : lookupWithDefault,
121 remove : remove,
136 remove : remove,
122 toPrettyJSString : toPrettyJSString,
137 toPrettyJSString : toPrettyJSString,