Add special finds to JSON.
This commit is contained in:
parent
ce9e5d2173
commit
84e8d80631
1 changed files with 15 additions and 0 deletions
|
@ -21,17 +21,29 @@ Elm.JSON = function() {
|
|||
};
|
||||
};
|
||||
}
|
||||
|
||||
function lookup(key) { return function(obj) {
|
||||
var k = JS.castStringToJSString(key);
|
||||
return obj[1].hasOwnProperty(k) ? Just(obj[1][k]) : Nothing ;
|
||||
};
|
||||
}
|
||||
function find(tipe,base) { return function (key) { return function(obj) {
|
||||
var k = JS.castStringToJSString(key);
|
||||
if (obj[1].hasOwnProperty(k)) {
|
||||
var v = obj[1][k];
|
||||
if (v[0] === tipe) { return v[1]; }
|
||||
}
|
||||
return base;
|
||||
};
|
||||
}
|
||||
}
|
||||
function lookupWithDefault(base) { return function(key) { return function(obj) {
|
||||
var k = JS.castStringToJSString(key);
|
||||
return obj[1].hasOwnProperty(k) ? obj[1][k] : base ;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
function remove(k) { return function(inObj) {
|
||||
var obj = inObj[1];
|
||||
var outObj = {};
|
||||
|
@ -117,6 +129,9 @@ Elm.JSON = function() {
|
|||
singleton : singleton,
|
||||
insert : insert,
|
||||
lookup : lookup,
|
||||
findString : find("JsonString",["Nil"]),
|
||||
findObject : find("JsonObject", empty ),
|
||||
findArray : find("JsonArray" ,["Nil"]),
|
||||
findWithDefault : lookupWithDefault,
|
||||
remove : remove,
|
||||
toPrettyJSString : toPrettyJSString,
|
||||
|
|
Loading…
Reference in a new issue