function toJSON()
    {
        $json = new StdClass();
        $json->leader = utf8_encode($this->getLeader());

        /* Start fields */
        $fields = array();
        foreach ($this->fields as $field) {
            if (!$field->isEmpty()) {
                switch(get_class($field)) {
                case "File_MARC_Control_Field":
                    $fields[] = array(utf8_encode($field->getTag()) => utf8_encode($field->getData()));
                    break;

                case "File_MARC_Data_Field":
                    $subs = array();
                    foreach ($field->getSubfields() as $sf) {
                        $subs[] = array(utf8_encode($sf->getCode()) => utf8_encode($sf->getData()));
                    }
                    $contents = new StdClass();
                    $contents->ind1 = utf8_encode($field->getIndicator(1));
                    $contents->ind2 = utf8_encode($field->getIndicator(2));
                    $contents->subfields = $subs;
                    $fields[] = array(utf8_encode($field->getTag()) => $contents);
                    break;
                }
            }
        }
        /* End fields and record */

        $json->fields = $fields;
        $json_rec = json_encode($json);
        // Required because json_encode() does not let us stringify integer keys
        return preg_replace('/("subfields":)(.*?)\["([^\"]+?)"\]/', '\1\2{"0":"\3"}', $json_rec);
    }
function toJSON()
    {
        $json = new StdClass();
        $json->leader = utf8_encode($this->getLeader());

        /* Start fields */
        $fields = array();
        foreach ($this->fields as $field) {
            if (!$field->isEmpty()) {
                switch(get_class($field)) {
                case "File_MARC_Control_Field":
                    $fields[] = array(utf8_encode($field->getTag()) => utf8_encode($field->getData()));
                    break;

                case "File_MARC_Data_Field":
                    $subs = array();
                    foreach ($field->getSubfields() as $sf) {
                        $subs[] = array(utf8_encode($sf->getCode()) => utf8_encode($sf->getData()));
                    }
                    $contents = new StdClass();
                    $contents->ind1 = utf8_encode($field->getIndicator(1));
                    $contents->ind2 = utf8_encode($field->getIndicator(2));
                    $contents->subfields = $subs;
                    $fields[] = array(utf8_encode($field->getTag()) => $contents);
                    break;
                }
            }
        }
        /* End fields and record */

        $json->fields = $fields;
        $json_rec = json_encode($json);
        // Required because json_encode() does not let us stringify integer keys
        return preg_replace('/("subfields":)(.*?)\["([^\"]+?)"\]/', '\1\2{"0":"\3"}', $json_rec);
    }
function toJSON ( ) { $ json = new StdClass ( ) ; $ json -> leader = utf8_encode ( $ this -> getLeader ( ) ) ; /* Start fields */ $ fields = array ( ) ; foreach ( $ this -> fields as $ field ) { if ( ! $ field -> isEmpty ( ) ) { switch ( get_class ( $ field ) ) { case "File_MARC_Control_Field" : $ fields [ ] = array ( utf8_encode ( $ field -> getTag ( ) ) => utf8_encode ( $ field -> getData ( ) ) ) ; break ; case "File_MARC_Data_Field" : $ subs = array ( ) ; foreach ( $ field -> getSubfields ( ) as $ sf ) { $ subs [ ] = array ( utf8_encode ( $ sf -> getCode ( ) ) => utf8_encode ( $ sf -> getData ( ) ) ) ; } $ contents = new StdClass ( ) ; $ contents -> ind1 = utf8_encode ( $ field -> getIndicator ( 1 ) ) ; $ contents -> ind2 = utf8_encode ( $ field -> getIndicator ( 2 ) ) ; $ contents -> subfields = $ subs ; $ fields [ ] = array ( utf8_encode ( $ field -> getTag ( ) ) => $ contents ) ; break ; } } } /* End fields and record */ $ json -> fields = $ fields ; $ json_rec = json_encode ( $ json ) ; // Required because json_encode() does not let us stringify integer keys return preg_replace ( '/("subfields":)(.*?)\["([^\"]+?)"\]/' , '\1\2{"0":"\3"}' , $ json_rec ) ; }
Return the MARC record in JSON format

This method produces a JSON representation of a MARC record. The input
encoding must be UTF8, otherwise the returned values will be corrupted.

@return string          representation of MARC record in JSON format

@todo Fix encoding input / output issues (PHP 6.0 required?)
Return the MARC record in JSON format