相关疑难解决方法(0)

JSON.stringify,避免TypeError:将循环结构转换为JSON

我有一个大对象,我想转换为JSON并发送.但它具有圆形结构.我想抛出任何存在的循环引用并发送任何可以进行字符串化的内容.我怎么做?

谢谢.

var obj = {
  a: "foo",
  b: obj
}
Run Code Online (Sandbox Code Playgroud)

我想将obj字符串化为:

{"a":"foo"}
Run Code Online (Sandbox Code Playgroud)

javascript json node.js

608
推荐指数
10
解决办法
67万
查看次数

如何使用node.js打印JSON?

这似乎是一个已解决的问题,但我无法找到解决方案.

基本上,我读取了一个JSON文件,更改了一个密钥,并将新的JSON写回到同一个文件中.一切正常,但我放松了JSON格式.所以,而不是:

{
  name:'test',
  version:'1.0'
}
Run Code Online (Sandbox Code Playgroud)

我明白了

{name:'test',version:'1.1'}
Run Code Online (Sandbox Code Playgroud)

在Node.js中有没有办法将格式良好的JSON写入文件?

json node.js

403
推荐指数
7
解决办法
25万
查看次数

Stringify(转换为JSON)具有循环引用的JavaScript对象

我有一个包含循环引用的JavaScript对象定义:它有一个引用父对象的属性.

它还具有我不想传递给服务器的功能.我如何序列化和反序列化这些对象?

我读过这样做的最好方法是使用Douglas Crockford的stringify.但是,我在Chrome中收到以下错误:

TypeError:将循环结构转换为JSON

代码:

function finger(xid, xparent){
    this.id = xid;
    this.xparent;
    //other attributes
}

function arm(xid, xparent){
    this.id = xid;
    this.parent = xparent;
    this.fingers = [];

    //other attributes

    this.moveArm = function() {
        //moveArm function details - not included in this testcase
        alert("moveArm Executed");
    }
}

 function person(xid, xparent, xname){
    this.id = xid;
    this.parent = xparent;
    this.name = xname
    this.arms = []

    this.createArms = function () {
        this.arms[this.arms.length] = new arm(this.id, this);
    }
}

function group(xid, xparent){
    this.id = …
Run Code Online (Sandbox Code Playgroud)

javascript jquery json stringify

68
推荐指数
5
解决办法
8万
查看次数

将具有循环引用的对象从服务器传递到客户端Javascript,同时保留循环

我正在尝试将带有循环引用的对象从node.js服务器传递到客户端javascript.

服务器(node.js):

var object = { circular: object }
//....
app.get('/', function(req, res){    
    res.render('index.jade', {object: object});
});
Run Code Online (Sandbox Code Playgroud)

客户端Jade/Javascript

script var object = !{JSON.stringify(object)};
Run Code Online (Sandbox Code Playgroud)

在这里,我得到object包含循环引用的错误.

没有 循环引用的任何方式来获取object客户端javascript ?

javascript circular-reference node.js express pug

4
推荐指数
1
解决办法
5492
查看次数

使用JavaScript对象的共享*测试深度相等*

关于在JavaScript中测试两个对象以实现深度相等的主题,已经有很多墨水.但是,没有人关心区分以下两个对象:

var o1 = [{},{}];
var subitem = {};
var o2 = [subitem, subitem];
var o3 = [{}, {}];
Run Code Online (Sandbox Code Playgroud)

大多数深度相等算法会说o1,o2并且o3是相同的.我想要一个算法,说明o1并且o2不相等,但是o1并且o3相等.换句话说,我想要一个算法,告诉我指针是否具有相同的结构.我关心这个因为如果我对第一个元素进行了修改,则反映在第二个元素中o2,而不是在第二个元素中o1.

这意味着循环结构的深度相等应该起作用:

var o1 = [];
o1.push(o1);
var o2 = [];
o2.push(o2);
// deepGraphEqual(o1, o2) == true
var o3 = [[]];
o3[0].push(o3);
// deepGraphEqual(o1, o3) == false
Run Code Online (Sandbox Code Playgroud)

如果你要避免改变项目,你可能需要ECMAScript6地图,所以我会接受使用它们的解决方案.

javascript ecmascript-6

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

JSON.stringify抛出错误

var Products = [
    { id: 0, product: 'Sour Apple', price: 10, count: 1, product_thumb: 'resources/css/apple.png' },
    { id: 1, product: '30 dsfdf', price: 20, count: 1, product_thumb: 'resources/css/croissant.png' },
    { id: 2, product: 'Discount Coffee', price: 30, count: 1, product_thumb: 'resources/css/coffecup.png' },
    { id: 3, product: '30 Donut Combo', price: 40, count: 1, product_thumb: 'resources/css/donut.png' },
    { id: 4, product: 'Invisishield', price: 50, count: 1, product_thumb: 'resources/css/apple.png' },
    { id: 5, product: 'Pink Cupcake', price: 60, count: 1, product_thumb: …
Run Code Online (Sandbox Code Playgroud)

javascript json

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

如何从Extjs.Class编码到JSON字符串?

我想将EXTjs类编码为Json,但是,我不能..

我使用JSON.stringify,但这给出了Exception和Type错误.

我怎样才能做到这一点?

谢谢,在这里我的代码.

Ext.define('Text',{
    extend : 'Ext.Img',
    x : 50,
    y : 50,
    size : 100,
    text : 'Text',
    name : 'Text',
    src : ' ',
    tag : '',
    Events : []
});

var text = new Text();
var temp = JSON.stringify(text);
Run Code Online (Sandbox Code Playgroud)

json extjs extjs4

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