将 null 替换为 JSON 中的引号

Replace null with quotes in JSON

本文关键字:JSON null 替换      更新时间:2023-09-26

这个主题在这个网站上针对PHP和Rails进行了讨论,但我没有看到标准JavaScript的任何内容。

如果我的 JSON 对象在一对中有一个空值,它看起来像这个 id:null,但我需要它看起来像这个 id:"

由于 JSON 不支持单引号,我不确定该怎么做。

当前结果

{"id":"e6168d55-1974-e411-80e0-005056971214","label":"List","parentId":null}

期望的结果

{"id":"e6168d55-1974-e411-80e0-005056971214","label":"List","parentId":""}

JSON.stringify接受替换器回调,允许您用其他值替换值。替换器回调针对输入中处理的每个键值对运行,并将提供的值替换为返回值。

只需让您的替换器回调查找任何null值并将其替换为空字符串:

var myObj = {
               "id":"e6168d55-1974-e411-80e0-005056971214",
               "label":"List",
               "parentId":null
             };
JSON.stringify(myObj, function(key, value) {
    // if value is null, return "" as a replacement
    if(value === null) {
        return "";
    }
    // otherwise, leave the value unchanged
    return value;
});

如果您没有对象,但只有 JSON 作为输入,则可以使用 var myObj = JSON.parse(jsonInput); 构建对象

不知道你为什么要提到单引号,但在 json 中它永远不会看起来像这样:

id:null

也许你的意思是这个?

{
  "id": null
}

无论如何,如果要对空字符串进行编码""而不是null,请提供一个空字符串,因为""只是对空字符串进行编码的方式。因此,请检查您的null并用空字符串替换它们。

我不相信有一种快速简便的方法可以将 NULL 映射到 "。 如果您没有使用非常深的 JSON 结构,则可以遍历该结构并将其从 NULL 更改为 "。

这解决了我的问题

  myJSON = myJSON.replace(/null/i, "'"'"");

试试这个。

var response = yourResponseText.replace(/null/g, '')
var json = JSON.parse(response);

将回复文本中的null替换为 '' 。替换后,将字符串解析response JSON

试试这个

const obj = {
    "id": "e6168d55-1974-e411-80e0-005056971214",
    "label": "List",
    "parentId": null
}
const jsonObj = JSON.stringify(obj,
    (key, value) => (value === null) ? '' : value
);
console.log(jsonObj);
// return -> {"id":"e6168d55-1974-e411-80e0-005056971214","label":"List","parentId":""}
{"id":"e6168d55-1974-e411-80e0-005056971214","label":"List","parentId": "parentId" ? "parentId" : ''}