如何将可空的json对象表示为单个字符串?

时间:2012-01-08 00:23:21

标签: javascript json nullable

我的JavaScript文件中有一个包含

的json对象
"qs": {}

当我将它存储在数据库中时,变为:

[object Object]

在其他时候,同一个对象看起来像这样:

"qs":{"id": "stackoverflow"}

或者这个:

"qs":{"id": "stackoverflow", "location": "USA"}

但无论数组包含多少元素,我都希望将它存储在一个数据库表字段中 - 所以我需要将其压缩成可读的字符串。

使用在某些时候可能为空的字段(如上所述)执行此操作的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

您可能希望使用stringify将对象转换为字符串。

同样{}不为空,它是一个空对象。 "qs" : null为空。

答案 1 :(得分:1)

您可以将其转换为其字符串表示形式(即实际的JSON;您所拥有的是对象文字,它与JSON不同)并使用它。您可以使用JSON.stringify执行此操作,并使用其中一个可用的替代方法。

答案 2 :(得分:0)

标准JSON函数将为您透明地处理所有这些(包括null和空对象)。在JavaScript中处理数据时,不应使用JSON字符串。相反,首先将JSON从字符串转换为JavaScript变量。当您准备好再次将数据提交到数据库时,请再次将其从JavaScript变量转换为JSON字符串:

// initialise a variable with the string from the database
dbData = '{"id": "stackoverflow", "location": "USA"}';

// initialise a JavaScript object with the data from the database
jsData = JSON.parse(dbData);

// when ready to put the string back into the database convert the JS object to a string
dbDate = JSON.stringify(jsData);