将JavaScript对象序列化为JSON并反向操作

9

我正在使用jQuery的post方法向服务器发送一些数据。不想自己构建JSON字符串,而是想直接使用JavaScript对象。当我收到返回的字符串(JSON格式)时,希望能自动构建相应的JavaScript对象。

这种做法可行吗?

4个回答

29

请查看JSON2文档中的JSON.stringify()JSON.parse()

示例:

myData = JSON.parse(text); // from json string to js object

var myJSONText = JSON.stringify(myObject, replacer); // js object to json string

8

可以。

如果有JSON对象可用,您可以使用:

var aString = JSON.stringify(anObject);

将对象转换为JSON字符串。

您还可以使用以下方法将字符串转换为对象

var obj = JSON.parse(aString)

为确保JSON可用,您可以包含此文件https://github.com/douglascrockford/JSON-js


3

您应该使用Douglas Crockford的JSON2库

这样,您可以:

var jsonString = JSON.stringify(obj);

或者

var Obj = JSON.parse(jsonString);

2
在现代浏览器中,您可以以任何方式执行该操作。JSON2是一个polyfill(值得使用)。 - Quentin

1
如果您使用jQuery.getJSON,您不必担心对json进行字符串化和解析,因为jquery会替您完成。

确实是一个好消息。如果您在使用$.ajax时将dataType设置为“json”,也是如此。 - CronosS
@CronosS,没错。getJSON只是使用"json"作为dataType的$.ajax的简写。 - Molecular Man

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接