相关疑难解决方法(0)

限制JSON字符串化深度

当使用JSON.stringify(或类似的东西)对对象进行字符串化时,有一种方法可以限制字符串化深度,即只有n级深入到对象树中并忽略之后的所有内容(或者更好:将占位符放在那里,表示留下了一些东西出来)?

我知道这JSON.stringify需要一个表单的替换函数,function (key, value)但我没有找到一种方法来获取当前键值对的原始对象的深度,交给更换器函数.

有没有办法使用默认的JSON.stringify实现?或者我已经达到了我应该自己实现字符串化的程度?或者是否有另一个可以推荐的具有此选项的字符串化库?

javascript json stringify

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

Stringify DOMWindow对象

出于某种原因,我似乎无法在DOMWindow对象上使用JSON.stringify.例如:

console.log(window.self); // Outputs a hierarchical DOMWindow object
console.log(JSON.stringify(window.self)); // Outputs nothing - not even an error

alert(window.self); // Alerts "[object DOMWindow]"
alert(JSON.stringify(window.self)); // Again nothing - not even an error
Run Code Online (Sandbox Code Playgroud)

在Safari和Chrome上测试过.有没有人有任何想法我怎么能做到这一点?

编辑:

将编辑移至新问题,因为它并不特定于此.

javascript json

8
推荐指数
1
解决办法
7651
查看次数

在Safari中为复杂对象调用JSON.stringify错误

如上所述,这种情况发生在Safari中,而在Chrome和Firefox中它运行良好.

我认为这是因为变成json的对象有两个包含moment对象的属性.我将它们更改为日期对象并stringify传递了函数.

奇怪的是,如果我尝试这样做JSON.stringify(moment())是有效的,所以我不知道如何调试它并找到问题所在.

以下是Safari中错误的屏幕截图:

错误

编辑:

经过一些调试后,我发现dhtmlxwindow onclose事件发生后会发生此错误.我在一个dhtmlx窗口中加载一个局部视图,在那里我创建了这个对象,在关闭窗口之前,该对象被推入一个初始化为父视图的列表中.

在我关闭窗口之前我做了,JSON.stringify(parent.addedContracts)并且在onclose事件发生后它工作正常(我没有覆盖代码)列表具有相同的对象(我检查了所有属性)但是stringify同一列表失败.

编辑:

创建添加到列表中的对象如下:

var contractStartDate = moment(contractStartDateCalendar.getDate(true), "L");
var contractEndDate = moment(contractEndDateCalendar.getDate(true), "L");

var newContract = {
    Id                  : uniqueId,
    FunctionDesc        : $("#contractFunction").val(),
    ContractHours       : $("#contractHours").val(),
    AdditionalCostFactor: $("#contractAdditionalCostFactor").val().replace(',', '.'),
    VacationFormula     : contractHolidayCostFactor,
    StartDate           : contractStartDate,
    EndDate             : contractEndDate,
    Notes               : Encoder.htmlEncode(tinyMCE.get('contractNotes').getContent()),
    DaysOfWeek          : workingDaysString,
    PlusMinus           : $("#contractTypeDropdown option:selected").data("plusminus"),
    SalaryCalculation   : $("#contractTypeDropdown option:selected").data("salarycalculation"),
    ContractTypeId      : $("#contractTypeDropdown").val(),
    ContractTypeName    : $("#contractTypeDropdown option:selected").text(), …
Run Code Online (Sandbox Code Playgroud)

javascript safari json dhtmlx momentjs

8
推荐指数
1
解决办法
1899
查看次数

JavaScript中确定循环数据结构相等性的算法

var ones = [1];
ones[1] = ones;
ones;
// => [1, [1, [1, [1, [1, ...]]]]]

var ones_ = [1];
ones_[1] = ones_;
ones_;
// => [1, [1, [1, [1, [1, ...]]]]]
Run Code Online (Sandbox Code Playgroud)

如何确定onesones_等于?是否有处理上述圆形结构的算法?

javascript functional-programming equality

3
推荐指数
1
解决办法
246
查看次数

如何将循环JSON对象字符串化?

是否有可以对复杂JSON对象进行字符串化的内置方法?

每次我使用JSON.stringfy我都会收到此错误:将循环结构转换为JSON,我还需要它的解析器

这是我的对象的图像 http://imgur.com/s3HbdtQ

javascript json

0
推荐指数
1
解决办法
2712
查看次数