Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON转换为字符串,但不在字符串中包含属性名称_Javascript_Json - Fatal编程技术网

Javascript 将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对象转换为字符串,但是如果我使用
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()
方法。