Javascript 将JSON转换为字符串,但不在字符串中包含属性名称
我想将JSON对象转换为字符串,但是如果我使用Javascript 将JSON转换为字符串,但不在字符串中包含属性名称,javascript,json,Javascript,Json,我想将JSON对象转换为字符串,但是如果我使用JSON.stringify(),输出字符串还将包含属性的名称,这是我不想要的 我可以通过迭代对象来实现这一点,但我希望有一个解决方案也适用于任何深度的嵌套对象 例如,如果我执行以下操作: let myObject = { name: 'Bob', preferences: { color: 'red', food: 'pizza' } }; console.log(JSON.stringify(myObject));
JSON.stringify()
,输出字符串还将包含属性的名称,这是我不想要的
我可以通过迭代对象来实现这一点,但我希望有一个解决方案也适用于任何深度的嵌套对象
例如,如果我执行以下操作:
let myObject = {
name: 'Bob',
preferences: {
color: 'red',
food: 'pizza'
}
};
console.log(JSON.stringify(myObject));
输出字符串将是:
{"name":"Bob","preferences":{"color":"red","food":"pizza"}}
我怎样才能得到像下面这样的东西
{"Bob","red","pizza"}
使用递归并检查对象,如果不是对象,则推入结果
让myObject={
姓名:'鲍勃',
首选项:{
颜色:“红色”,
食物:“比萨饼”,
儿童:{
a:嗨,
b:{
c:‘d’
}
}
}
};
设res=[];
功能goInto(obj){
用于(输入obj){
如果(对象的类型[键]=“对象”){
goInto(obj[钥匙]);
回来
}否则{
res.push(对象[键])
}
}
}
goInto(myObject);
控制台日志(res)代码>听起来您需要了解该方法
方法返回给定对象自身可枚举属性值的数组,其顺序与for…in循环提供的顺序相同(区别在于for in循环也枚举原型链中的属性)
这可用于快速有效地获取简单对象的值
让obj={
“key1”:“val1”,
“键2”:“val2”,
“键3”:“val3”
}
console.log(Object.values(obj));
//循环打印为字符串
让objString=“”;
Object.values(obj.forEach)(val)=>{
objString=objString+“”+val
});
console.log(objString)代码>这将不是有效的对象。。。。。它会是一个数组吗?我希望输出是一个字符串,而不是一个对象,这是因为稍后我要检查该字符串是否包含其他字符串。提示:递归循环值,对于每个级别,都必须检查对象或原语。此外,我假设您想要一个数组,因为所需的输出无效。您是对的,我不知道Object.values()
方法,我应该做更多的研究。你的答案非常完整,有人也发布了一个关于Object.values()
方法的答案,但我想知道如何将其用于多维对象,谢谢,我想我会使用这种方法。@没问题,这就是这个网站的目的:)很高兴我能帮上忙谢谢,你的答案很简单,实现了我想要的,但是,我不确定哪种方法更有效,如果是您的方法还是@ChrisM答案中的方法,因为现在我将使用@ChrisM的方法,因为使用了Object.value()
方法。