[英]Replace null with quotes in JSON
该主题在此站点上针对 PHP 和 Rails 进行了讨论,但我没有看到任何标准 JavaScript 的内容。
如果我的 JSON 对象在一对中有一个 null 值,它看起来像这个id:null<\/strong>但我需要它看起来像这个id:""<\/strong>
由于 JSON 不支持单引号,我不确定如何执行此操作。
当前结果<\/strong>
{"id":"e6168d55-1974-e411-80e0-005056971214","label":"List","parentId":null}
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);
构建对象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" : ''}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.