我有一个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"}
任何帮助都很明显! 谢谢!
答案 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;