打印json对象中的所有path

在给定的Json对象中获取所有path的简单方法是什么? 例如:

{ app:{ profiles:'default' }, application:{ name:'Master Service', id:'server-master' }, server:{ protocol:'http', host:'localhost', port:8098, context:null } } 

我应该能够产生以下对象

 app.profiles=default application.name=Master Service application.id=server-master 

我能够实现相同的使用recursion函数。 我想知道是否有任何内置函数从JSON这样做。

您可以通过recursion迭代对象来实现自定义转换器。

像这样的东西:

 var YsakON = { // YsakObjectNotation stringify: function(o, prefix) { prefix = prefix || ''; switch (typeof o) { case 'object': if (Array.isArray(o)) return prefix + '=' + JSON.stringify(o) + '\n'; var output = ""; for (var k in o) { if (o.hasOwnProperty(k)) output += this.stringify(o[k], prefix + '.' + k); } return output; case 'function': return ""; default: return prefix + '=' + o + '\n'; } } }; // Usage: YaskON.stringify(obj); 

这不是一个最好的转换器实现,只是一个快速编写的例子,但它应该有助于你理解主要原则。

这里是工作的JSFiddle演示 。

我认为这没有内置的function。 它可以做一个简单的循环如下在我的小提琴。 但是它并不考虑recursion。 以下是我发现的其他post: Post1和Post2以及Post3

 var myjson = { app:{ profiles:'default' }, application:{ name:'Master Service', id:'server-master' }, server:{ protocol:'http', host:'localhost', port:8098, context:null } }; for(key in myjson) { for(k in myjson[key]) { console.log(key + '.' + k + ' = '+ myjson[key][k]); } } 

小提琴