如何从JSON循环和插入数据到不同的表

时间:2015-09-22 07:44:26

标签: postgresql

我有一个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 });
});

1 个答案:

答案 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?