如何将布尔值和数字类型Json Key值转换为字符串类型

时间:2016-08-25 19:56:20

标签: javascript node.js

我有一个json对象,它有不同的字符串,布尔值和数字类型的键值。我想将布尔值和数字类型键值转换为字符串类型..我,例如:{"rent":2000,"isPaid":false}是一个有效的json。这里我想将租金和isPaid转换为字符串类型,即{"rent":"2000","isPaid":"false"},这也是有效的。因为这是我使用的替代品,但不能完全按照我的要求工作:

var json={"rent":2000,"isPaid":false};
var jsonString = JSON.stringify(json, replacer);
function replacer(key, value) {
if (typeof value === "boolean"||typeof value === "number") {
return "value";
}
return value;
}
console.log(jsonString);

然后上面的代码安慰为:{"rent":"value","isPaid":"value"}

然后我使用返回"value"替换了返回'"'+value+'"'。然后在控制台上提供{"rent":"\"2000\"","isPaid":"\"false\""}

有人可以帮助我,使其返回{"rent":"2000","isPaid":"false"}

任何帮助都很明显! 谢谢!

4 个答案:

答案 0 :(得分:1)

试试这个:

var json={"rent":2000,"isPaid":false};
var jsonString = JSON.stringify(json, replacer);

function replacer(key, value) {
  if (typeof value === "boolean"||typeof value === "number") {
    return String(value);
  }
  return value;
}

console.log(jsonString);

我们正在使用String()函数将您的布尔值和数字转换为字符串。输出是:

{"rent":"2000","isPaid":"false"}

答案 1 :(得分:1)

你可以这样做......

var json={"rent":2000,"isPaid":false};
var jsonString = JSON.stringify(json, replacer);
function replacer(key, value) {
if (typeof value === "boolean"||typeof value === "number") {
return value=""+value+"";
}
return value;
}
console.log(jsonString);

答案 2 :(得分:0)

您可以使用JavaScript的toString()方法转换数字/布尔值,将其更改为字符串,如下所示:

var json={"rent":2000,"isPaid":false};
var temp = {};
json.forEach(function(val, key)
{
 temp[key] = val.toString();
});
json = temp;

答案 3 :(得分:0)

使用JSON.parse(text[, reviver]) “ reviver”参数有一些参考。

    let reviver = (key, value) => 
    (typeof value === 'number' || typeof value === 'boolean') ? String(value) : value;