标签: reviver-function

如何使用Immutable.js从javascript原始对象创建记录映射?

我是immutable.js的新手,我想更好地理解如何从原始JS对象开始使用记录.

随着Immutable.fromJS()我可以创建一个地图将原料对象,例如:

var images = {
   "1": {
    id: "1",
    urls: ["/medium/1.jpg", "/large/1.jpg"]
   },
   "2": {
    id: "2",
    urls: ["/medium/1.jpg", "/large/1.jpg"]
   }
  }

var imagesMap = Immutable.fromJS(images);
Run Code Online (Sandbox Code Playgroud)

imagesMap 现在是一个包含其他地图的地图,每个地图一个.

我想改为创建一个包含记录的地图,例如使用Image定义为的记录:

var ImageRecord = Immutable.Record({ id: undefined, urls: undefined })
Run Code Online (Sandbox Code Playgroud)

我怎么能有s的imagesMap地图ImageRecord?我可以做些什么来通过复兴fromJS,或者我应该采用"旧"方法?

// old approach
var imagesMap = Immutable.Map()
for (key in images) {
   imagesMap.set(key, new ImageRecord(images[key]))
}
Run Code Online (Sandbox Code Playgroud)

javascript immutability reviver-function immutable.js

9
推荐指数
1
解决办法
1万
查看次数

如何在 fetch.response.json() 中使用 reviver 函数

JSON.parse附带了一个“reviver”函数(例如:“JSON.parse using reviver function”)。

如何在response.json 中使用这个“复活者” ?例如:

fetch(url)
.then(a => a.json({reviver}))    // unfortunately not working
.then(...)
Run Code Online (Sandbox Code Playgroud)

我有一个解决方法:

fetch(url)
.then(a => a.text())
.then(b => new Promise((resolve) => resolve(JSON.parse(b, reviver))))
.then()
Run Code Online (Sandbox Code Playgroud)

但它多用了一步,这似乎没用。有什么更好的主意吗?

javascript reviver-function fetch-api

6
推荐指数
2
解决办法
428
查看次数

如何使用JSON.parse reviver参数来解析日期字符串

我的JSON字符串包含一个返回这样一个值的日期字段:

"2009-04-04T22:55:16.0000000-04:00"
Run Code Online (Sandbox Code Playgroud)

我特别感兴趣的是只解析日期隔间而不是时间.我尝试使用reviver函数,但有趣的是,从不调用reviver函数!(在Firefox上试过)

这是我完成的代码:

var Site = {
.....
dateReviver: function(key, value) {
    var a;
    if (typeof value === 'string') {
        a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
        if (a) {
            return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
                            +a[5], +a[6]));
        }
    }
    return value;
},
loadArticle: function(id) {
....
    proxy.getArticle(id, function(response) {
        var data = JSON.parse(response.result, Site.dateReviver);
        ....
    });
}
};
Run Code Online (Sandbox Code Playgroud)

loadArticle永远不会调用JSON.parse dateReviver.

我投了一整天但没有运气!有人可以帮帮我吗?

javascript debugging json date-parsing reviver-function

5
推荐指数
2
解决办法
1万
查看次数