javascript - 将 Javascript 对象转换为 JSON 字符串

标签 javascript json

我想直接将 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/

相关文章:

c# - C# 将对象转换为二维数组

c# - JSON 序列化数组在 JSON 字符串中返回 NULL

jquery - jQuery YouTube检索描述

javascript - 如何使用 javascript 更改 Canvas 中动画的颜色?

php - 不要在移动设备上加载 jQuery

java - 在 Java 中删除 json 中的节点

json - Elasticsearch :在一个查询中进行多项搜索

javascript - 在 JavaScript 中使用 for...in 获取奇怪的东西

javascript - AJAX 未正确发送 POST 变量

javascript - jqGrid 编辑最后一行时客户端验证模式未正确放置