Tag: jsonpath

使用JSONPath和JSONStreamparsingjsonstream

我有这样的数据stream: {"foo": 1} {"bar": 2} 注意:这些地图之间没有逗号。 我想在node.js中读取这个stream,以便我可以捕获这两个映射,如上所示。 我一直在试图用JSONStream来做到这一点,JSONStream很好地识别stream中的离散JSON实体,但有些变化的数据。 所以我运行的代码是: var jsonStream = require('JSONStream'); var es = require('event-stream'); var parser = jsonStream.parse('$*'); process.stdin.pipe(parser) .pipe(es.mapSync(function (data) { console.log(data); })); 而这个输出: { value: 1, key: 'foo' } { value: 2, key: 'bar' } 我希望它输出不变的JSON映射: {"foo": 1} {"bar": 2} 任何人都知道我可以用JSONStream或其他东西来实现这一点吗?

打印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这样做。

如何用jsonpath列出对象键名?

我正在使用jsonpath的nodejs 。 我有这个JSON结构: { things:{ books: [ {name: "book1"}, {name: "book2"}, {name: "book3"}, {name: "book4"}, ], movies: [ {name: "movie1"}, {name: "movie2"}, {name: "movie3"}, {name: "movie4"}, ] } } 我想知道jsonpathexpression式返回一个数组与things对象的键名称。 那将是: ["books","movies"] 现在,我正在这样做: Object.keys(jsonpath.eval(jsonStructure,"$.things").pop()); 但我不觉得它优雅…我不应该需要得到整个结构的副本,当我只需要关键的名字。