Javascript:递归地将对象转换为字符串(包括子对象和数组),就好像它周围有引号一样(与 JSON.stringify 不同)

标签 javascript string object

此问题已解决。

根据karuzo的回答,我做了一个最终版本:

$['to'] = function ($a)
{
    $u = JSON.stringify(this); $w = this.typeof(); $x = $a.typeof();

    if ($x == 'Array')
    {
        if ($w == 'Object')
        {
            $y = []; this.keys().for(($l, $m, $n) =>
            {
                $y[$m] = [$l, this[$l]];
            });

            return $y;
        }

        else if ($w == 'Array')
        {
            return [].slice.call(this);
        }

        else if ($w == 'String')
        {
            return [this];
        };
    }

    else if ($x == 'Object')
    {
        if ($w == 'Object')
        {
            return this.to("").from({});
        }

        else if ($w == 'Array')
        {
            $y = {}; this.for(($l, $m, $n) =>
            {
                $l != {}._ ? $y[$m] = $l : null;
            });

            return $y;
        }

        else if ($w == 'String')
        {
            return {value: this};
        }
    }

    else if ($x == 'String')
    {
        if ($w == 'Object')
        {
            return JSON.stringify(this).replace(/\"([^(\")"]+)\":/g, '$1:');
        }

        else if ($w == 'Array')
        {
            return $u;
        }

        else if ($w == 'String' | $w == 'Number')
        {
            return this.toString();
        };
    }

    else
    {
        return this;
    };
}

该版本直接包含在代码所在的文件paxiom.js中。 上面代码中使用的一些函数在库中。我知道这往往会吸引一些观众,因此当库的第 1 版完成后,它将在 https://hbms.github.io/-/paxiom.js 上提供。

最佳答案

你可以尝试:

var obj = {a: "x", b: ["y"], c: {d: ["z"]}, e: [{f: "g"}]};

var objStr = JSON.stringify(obj).replace(/\"([^(\")"]+)\":/g,"$1:");

console.log(objStr);

输出:

{a:"x",b:["y"],c:{d:["z"]},e:[{f:"g"}]}

您可以eval()得到结果字符串:

var obj = eval(objStr)

关于Javascript:递归地将对象转换为字符串(包括子对象和数组),就好像它周围有引号一样(与 JSON.stringify 不同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40580010/

相关文章:

javascript - 对象问题中的 Jquery 对象

C++ 返回对象

javascript - Sharepoint SOAP 请求,如何设置下拉字段?

javascript - 所有页面的登录 Hook

javascript - R 中 Shiny 的 STRING 交互网络

PHP - 如何将文本文件中的行分解为数组?

javascript - 在自动完成中为动态加载的内容创建 UI

javascript - 如何添加新的输入行并插入数据库并出现未初始化的字符串偏移量 : 0 in 的错误

python - 如何检查一个字符串是否包含 python 中字母表的所有字母?

java - min3D 框架。物体旋转和移动