我有一个JSON,我需要将值写入不同的表。我可以从json获取数据,但我需要相应地插入数据。这就像我有一个表单,表单有n个部分,每个部分有n个步骤,每个步骤可以有n个问题。我如何循环这个并写入不同的表?基本上我需要知道如何在JSON中找到我们有多少部分,步骤和问题。我尝试了array_length,但没有工作。
以下是我的JSON的一小部分示例。
$(function () {
$('#container').highcharts({
chart: {
backgroundColor: {
linearGradient: [0, 0, 0, 300],
stops: [
[0, '#FFFFFF'],
[1, '#E0E0E0']
]
},
width: 500,
height: 400
},
credits: {
enabled: false
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}],
navigation: {
buttonOptions: {
enabled: false
}
},
exporting: {
scale: 1
}
});
// the button handler
$('#button').click(function () {
var chart = $('#container').highcharts();
chart.exportChart( {type: 'application/pdf',
filename: 'chart-pdf',
sourceWidth: 500,
sourceHeight: 400 });
});
答案 0 :(得分:0)
如果您知道代码中JSON数组的所有路径,可以使用9.4中出现的一些特殊函数,例如
SELECT json_array_length('{"array":[{"a":1},{"b":2},{"c":3}]}'::json->'array')
如果需要遍历JSON数组,还有另一个有用的功能:
SELECT json_array_elements('{"array":[{"a":1},{"b":2},{"c":3}]}'::json->'array')
SELECT json_array_elements('[{"a":1},{"b":2},{"c":3}]'::json)
或者如果json存储在表中,我们调用
SELECT json_array_elements(tbl.json_value->'array') FROM jsontable AS tbl
它返回一组从数组准备好处理的json值。 http://www.postgresql.org/docs/9.4/static/functions-json.html
有关JSON解析的更多信息,请访问此处 How do I query using fields inside the new PostgreSQL JSON datatype?