Javascript-高级JSON关键路径
Javascript - Advanced JSON keypaths
我正在寻找一个库,它可以使用keypath深入解析json,即在字典数组中查找值。
考虑以下JSON对象:
{
"root" :
{
"infos" :
{
"sport" : [
{"name" : "tennis"},
{"name" : "basket"}
]
}
}
};
我可以做一些类似var sport = json.valueForKeyPath('root.infos.sport.name')
的事情,它应该返回["tennis", basket"]
。
我试过underscore-keypath.min.js
,但它做不到。
有人知道图书馆能做到这一点吗?
我制作了一个可以做到这一点的小lib,你可以在github:上找到它
https://github.com/blauharley/TemplateJS
下面是一个你可以用它做什么的例子:
var objs = [
{ dim: { x: 25, y:14, z: 3}, name: 'circle'},
{ dim: { x: 19, y:17, z: 8}, name: 'triangle'},
{ dim: { x: 7, y:44, z: 12}, name: 'quad'},
{ dim: { x: 13, y:63, z: 67}, name: 'circle'},
{ dim: { x: 5, y:23, z: -2}, name: 'rectangle'}
];
var templ = new TemplateJS();
// if you have got more than one value to insert separate the values with pipes (|)
var str = "<p>{name}: | <b style='color:green'>{dim}{x}px</b> | <b style='color:red'>{dim}{y}px</b> | <b style='color:yellow'>{dim}{z}px</b></p>";
templ.transformTemplate(objs,str);
有两种方法,但transformTemplate更适合您的问题。它返回一个基于给定对象的字符串数组。它获取(objs数组中的)每个对象,并将其属性值放入作为第二个参数给定的字符串中。最后,transformTemplate返回一个转换的字符串数组。
第二种方法insertTemplate的作用几乎相同,但它被认为用于将一组值插入HTML元素。
使用"管道|"可以分隔对象的值,大括号可以自行解释。这个库可以假设处理无限对象嵌套(而不是数组),正如您在使用Jasmine完成的测试用例中看到的那样。
不幸的是,这两种方法都需要一个对象数组作为第一个参数,所以当你想使用这个库时,你可以这样使用它:
var source = {
'root':
{
'infos':
{
'sport': [
{
'name': 'tennis'
},
{
'name': 'basket'
}
]
}
}
};
var templ = new TemplateJS();
// if you have got more than one value to insert separate the values with pipes (|)
var str = '{name}';
templ.transformTemplate(source.root.infos.sport, str); // ["tennis", "basket"]
此外,它在所有浏览器中都进行了测试。
相关文章:
- 如何在AngularJS-ng重复循环中将长JSON路径缩短为变量
- Json在应用程序电话间隙!路径是什么
- 尝试从JSON数组在谷歌地图中制作路径
- 从一个复杂的JSON对象打印每个JSON输入路径
- 遍历JSON以查找树路径
- 从包含密钥路径的字符串中获取json值
- 使用json绘制灰尘.如何绘制灰尘中的关键数据
- 如何根据叶值显示JSON树中的特定路径
- Javascript-高级JSON关键路径
- 获取“;路径“;JavaScript中的JSON对象
- 将变量转换为 json 路径
- 当连接在一起时,如何使用两个部分构建 JSON 对象,生成正确的 JSON 数据路径
- 通过指定完整路径获取 JSON 子值时出现问题
- 在悬停在 SVG 路径上时显示来自 JSON 的数据
- 查找键值的 JSON 路径
- 如何在D3.js中添加到地理位置的链接(创建为json路径)
- JSON路径中的变量
- 将变量创建到路径JSON是由jQuery执行的操作
- 返回带有路径JSON的项目描述
- 如何使用吸引来观察多个关键路径