isergey
9/21/2012 - 11:56 AM

gistfile1.js

{
    "leader": "00 0 0000 000",
    "fields":{
        "control":{
            "001": "1234556",
            "009": "1234556"
        },
        "data":{
            // В хеше с номером поля храним массив, каждый элемент массива содержит информацию о поле. Элементов в
            // массиве столько, сколько раз поле повторяется в записе. Например 606 поле
            "200": [
                {
                    "ind": ["1","0"],
                    "subfields": {
                        "a": [
                            "даныне подполя а", "еще одно подполе а"
                        ],
                        // Даже если в поле всего одно подполе, всё равно данные подполя храним в массиве с одним элементом.
                        "b": [
                            "даныне подполя b"
                        ]
                    }
                }
            ],
            //Случай, когда запись содержит несколько 606 полей
            "606": [
                {
                    "ind": ["1","0"],
                    "subfields": {
                        "a": [
                            "даныне подполя а", "еще одно подполе а"
                        ]
                    }
                },
                {
                    "ind": ["1","0"],
                    "subfields": {
                        "a": [
                            "даныне подполя а", "еще одно подполе а"
                        ]
                    }
                }
            ],
            "443": [
                {
                    "ind": ["1","0"],
                    //По идее, в Русмарке в четырехстотом блоке может храниться только подполе "1".
                    //Тут указан блок subfields для совместимости с НЕрусмарк схемами
                    "subfields": {
                        "a": [
                            "даныне подполя а", "еще одно подполе а"
                        ],
                        "b": [
                            "даныне подполя b", "еще одно подполе b"
                        ]
                    },
                    //Подполе 1 4-го блока созданно для встроенных полей, поэтому 1 не укащываем, а помещаем
                    // встроенный поля в секцию builtin
                    "builtin":{
                        "200":[
                            {
                                "ind": ["1","0"],
                                "subfields": {
                                    "a": [
                                        "даныне подполя а", "еще одно подполе а"
                                    ],
                                    "b": [
                                        "даныне подполя b", "еще одно подполе b"
                                    ]
                                }
                            }
                        ],
                        "201":[
                            {
                                "ind": ["1","0"],
                                "subfields": {
                                    "a": [
                                        "даныне подполя а", "еще одно подполе а"
                                    ],
                                    "b": [
                                        "даныне подполя b", "еще одно подполе b"
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]// 443
        } // data
    } // fields
};