mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-26 19:20:24 +00:00
fix(JSON): json date parsing same native/ngular parser
This commit is contained in:
parent
bee6060e4b
commit
c6d2549a52
2 changed files with 14 additions and 12 deletions
|
|
@ -40,15 +40,17 @@ function fromJson(json, useNative) {
|
|||
try {
|
||||
if (useNative && window.JSON && window.JSON.parse) {
|
||||
obj = JSON.parse(json);
|
||||
return transformDates(obj);
|
||||
} else {
|
||||
obj = parser(json, true).primary()();
|
||||
}
|
||||
return parser(json, true).primary()();
|
||||
return transformDates(obj);
|
||||
} catch (e) {
|
||||
error("fromJson error: ", json, e);
|
||||
throw e;
|
||||
}
|
||||
|
||||
// TODO make forEach optionally recursive and remove this function
|
||||
// TODO(misko): remove this once the $http service is checked in.
|
||||
function transformDates(obj) {
|
||||
if (isString(obj) && obj.length === DATE_ISOSTRING_LN) {
|
||||
return angularString.toDate(obj);
|
||||
|
|
|
|||
|
|
@ -27,9 +27,8 @@ var OPERATORS = {
|
|||
};
|
||||
var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"'};
|
||||
|
||||
function lex(text, parseStringsForObjects){
|
||||
var dateParseLength = parseStringsForObjects ? DATE_ISOSTRING_LN : -1,
|
||||
tokens = [],
|
||||
function lex(text){
|
||||
var tokens = [],
|
||||
token,
|
||||
index = 0,
|
||||
json = [],
|
||||
|
|
@ -199,12 +198,13 @@ function lex(text, parseStringsForObjects){
|
|||
escape = true;
|
||||
} else if (ch == quote) {
|
||||
index++;
|
||||
tokens.push({index:start, text:rawString, string:string, json:true,
|
||||
fn:function() {
|
||||
return (string.length == dateParseLength)
|
||||
? angular['String']['toDate'](string)
|
||||
: string;
|
||||
}});
|
||||
tokens.push({
|
||||
index:start,
|
||||
text:rawString,
|
||||
string:string,
|
||||
json:true,
|
||||
fn:function() { return string; }
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
string += ch;
|
||||
|
|
@ -219,7 +219,7 @@ function lex(text, parseStringsForObjects){
|
|||
|
||||
function parser(text, json){
|
||||
var ZERO = valueFn(0),
|
||||
tokens = lex(text, json),
|
||||
tokens = lex(text),
|
||||
assignment = _assignment,
|
||||
assignable = logicalOR,
|
||||
functionCall = _functionCall,
|
||||
|
|
|
|||
Loading…
Reference in a new issue