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

How to represent a nullable json object as a single string?

本文关键字:对象 表示 单个 字符串 json null      更新时间:2023-09-26

我的JavaScript文件中有一个包含的json对象

"qs": {}

当我把它存储在数据库中时,它变成:

[object Object]

在其他时候,相同的对象看起来是这样的:

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

或者这个:

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

但是,无论数组包含多少元素,我都希望将其存储在一个数据库表字段中,因此我需要将其压缩为可读字符串。

对于在特定时间(如上所述)可能为空的字段,最好的方法是什么?

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

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

您可以将其转换为字符串表示形式(即实际的JSON;您所拥有的是一个对象文本,它与JSON不同)并使用它。您可以使用JSON.stringify来实现这一点,然后选择一个现成的替代方案。

标准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);