用JSON中的引号替换null

时间:2014-12-04 20:23:57

标签: javascript json

本网站针对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":""}

6 个答案:

答案 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" : ''}