我想直接将 JavaScript 对象转换为字符串。我使用了以下代码。
var foo = {};
foo.test1 = test1;
foo.test2 = test2;
foo.test3 = test3;
var jsonObj = JSON.stringify(foo);
它工作正常,但它使用 json2 javascript 库。不过,我需要用纯 JavaScript 来完成此操作,而不使用任何库。我知道使用传递的参数创建 json feed 将像这样工作。
var jsonObj = "{\"test1\":\"" + test1+ "\",\"test2\":\"" + test2+ "\",\"test3\":\"" + test3+ "\"}";
但是,如果传递的参数(test1、test2 和 test3)包含双引号,则会出现问题。
实现这一目标的最佳方法是什么?
谢谢
最佳答案
您应该通过对每个键和成员执行 String.replace(/"/g, "\\\"")
来转义双引号。然而,要使其工作,您需要保证 JS 对象中只有简单的字符串/数字。
仅供引用,应该注意的是,只有当 JSON 的 native 实现不存在时才会使用 json2
库; all modern browsers内置 JSON 支持(IE < 8 是值得注意的异常(exception))。
关于javascript - 将 Javascript 对象转换为 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8892220/