JSON路径:按层次结构输出值加上父级
JSON Path: Outputting value plus parent hierarchically
我是JSON Path的新手,所以如果可能的话,这可能比我想象的要简单。
我有一个JSON块,它由一组组组成,每个组有一组字段。每个组也有一个序列,每个字段也是如此。字段序列表示组内的顺序,组序列表示组本身的显示顺序。
我在c#中以编程的方式从具有不同序列值的项目(组和字段)的平面列表中生成了这个,所以我想验证我的输出,并扩展我的分组算法。
JSON块看起来像这样(非常简化):
{
"groups": [
{
"sequence": 0,
"fields": [
{
"sequence": 0
},
{
"sequence": 1
},
{
"sequence": 2
}
]
},
{
"sequence": 1,
"fields": [
{
"sequence": 0
},
{
"sequence": 1
}
]
},
{
"sequence": 2,
"fields": [
{
"sequence": 0
},
{
"sequence": 1
},
{
"sequence": 2
}
]
}
]
}
我正试图用JSON路径验证这一点。为此,我没有工具,所以我使用jsonpath在线求值器。
我的目标是输出这样的行:
'0'
'sequence' => '0'
'fields'...
'0'
'sequence' => '0'
'1'
'sequence' => '1'
'2'
'sequence' => '2'
// etc...
换句话说,我正在寻找一个JSON路径查询,可以返回每个组的序列加上组中每个字段的序列,在层次结构中。
为了获得组的序列,我使用了以下命令。这工作得很好,并给出了有用的输出,因为组已经是顶级项:
$.groups[*].sequence
'0' => "0"
'1' => "1"
'2' => "2"
为了获得组中字段的序列,我使用了以下命令。这里的输出不太有用,因为它是一个平面列表,如果我有几十个或更多的字段分布在几个组中,则可能难以阅读。
$.groups[*].fields[*].sequence
'0' => "0"
'1' => "1"
'2' => "2"
'3' => "0"
'4' => "1"
'5' => "0"
'6' => "1"
'7' => "2"
最终,问题是:是否有一个JSON路径查询可以让我在这里分层地获得我需要的信息?还是我用错了工具?我想我可以在JavaScript中编写几行代码,让我在必要时做到这一点,但似乎JSON路径可能是一个强大的学习工具,所以如果我能在这里做到这一点,我已经学到了一些东西。
您不需要变量序列。当你需要排序时,将项目从一组移动到另一组,排序你可以使用数组在对象中,对象在数组中。
数组用于排序,移动项,改变顺序。对象将单个项中的属性分组
var groups =
[
{"fields": [
{name: 'field1'},
{name: 'field2'},
{name: 'field3'}
],
},
{"fields": [
{name: 'field1'},
{name: 'field2'},
{name: 'field3'}
]
},
{"fields": [
{name: 'field1'},
{name: 'field2'},
{name: 'field3'}
]
}
];
console.log(groups[0].fields); // Array [ Object, Object, Object ]
console.log(groups[2].fields[0].name); // field1
函数拼接是改变序列的最佳方法。在相同的领域和不同的领域相同字段
中更改顺序的示例var oldIndex = 2, newIndex = 0, item = groups[0].fields.splice(oldIndex, 1)[0];
console.log(item);
groups[0].fields.splice(newIndex, 0, item);
console.log(groups);
- 在JavaScript中输出转义字符
- Javascript:使用绝对路径设置img src
- 如何在d3.js中返回路径的y坐标
- 如何在jQuery中将函数的输出分配给变量
- 复制图像路径以单击它
- 从模块内部访问Express装载路径
- JS文件的路径正在消失
- 使用onclick绘制SVG路径
- Javascript,输出结果后页面不断刷新
- jpm的默认Firefox路径没有'不起作用
- 如何使用jquery将base64图像路径转换为真实路径
- gulp-useref – 不同级别文件夹中的相对输出路径
- 浏览器化 – 避免输出绝对路径
- 全栈应用程序Gulp构建的输出/路径/结构策略
- 单击列表中的项目->查看详细信息但没有输出?Firebase.child失败:第一个参数是无效路径
- Webpack输出错误的图像路径
- Gulp-remember似乎输出错误的路径
- JSON路径:按层次结构输出值加上父级
- Extract-text-webpack-plugin输出CSS文件,图像路径错误
- 输入文本,带假路径,输出输入文本