本网站针对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":""}
答案 0 :(得分:7)
JSON.stringify
接受replacer callback,允许您将值替换为其他值。对于在输入中处理的每个键值对,都会运行replacer回调,它会将提供的值替换为返回值。
只需让您的replacer回调查找任何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);
构建对象
答案 1 :(得分:0)
不确定为什么你会提到单引号,但在json中它永远看起来像这样:
id:null
也许你是这个意思?
{
"id": null
}
无论如何,如果要编码""
而不是null
,则提供一个空字符串,因为""
只是编码空字符串的方式。因此,请浏览null
并用空字符串替换它们。
答案 2 :(得分:0)
我不相信有一种快速简便的方法可以将NULL映射到""。如果您没有使用非常深的JSON结构,那么您可以遍历结构并将其从NULL更改为""。
答案 3 :(得分:0)
这解决了我的问题
myJSON = myJSON.replace(/null/i, "\"\"");
答案 4 :(得分:0)
试试这个。
var response = yourResponseText.replace(/null/g, '')
var json = JSON.parse(response);
使用null
替换回复文字中的''
。替换后,将response
字符串解析为JSON
。
答案 5 :(得分:-3)
{"id":"e6168d55-1974-e411-80e0-005056971214","label":"List","parentId": "parentId" ? "parentId" : ''}