Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


MARC4J provides an easy to use API for working with MARC (binary), MARCXML, MARC JSON in Java. MARC stands for MAchine Readable Cataloging and is a widely used exchange format for bibliographic data. MARCXML provides a loss-less conversion between MARC (MARC21 but also other formats like UNIMARC) and XML.

Features

The MARC4J library includes:

...

JSON representation of marc record entity

{
"leader": "00508cjm a22001813 4500",
"fields": [
{
"001": "10062588"
},
{
"005": "20171013073237.0"
},
{
"007": "sd fsngnnmmneu"
},
{
"008": "170825s2017 xx nn n zxx d"
},
{
"024": {
"subfields": [
{
"a": "00190295755553"
},
{
"2": "gtin-14"
}
],
"ind1": "7",
"ind2": " "
}
},
{
"024": {
"subfields": [
{
"a": "190295755553"
}
],
"ind1": "1",
"ind2": " "
}
},
{
"035": {
"subfields": [
{
"a": "(OCoLC)1002130878"
}
],
"ind1": " ",
"ind2": " "
}
},
{
"035": {
"subfields": [
{
"a": "10062588"
}
],
"ind1": " ",
"ind2": " "
}
},
{
"040": {
"subfields": [
{
"a": "BTCTA"
},
{
"b": "eng"
},
{
"c": "BTCTA"
}
],
"ind1": " ",
"ind2": " "
}
},
{
"100": {
"subfields": [
{
"a": "Rossi, Daniele"
}
],
"ind1": "1",
"ind2": " "
}
},
{
"245": {
"subfields": [
{
"a": "Saint-Saens: Organ Symphony and Carnival of The Animals"
}
],
"ind1": "0",
"ind2": "0"
}
},
{
"260": {
"subfields": [
{
"b": "Wea Corp"
},
{
"c": "2017."
}
],
"ind1": " ",
"ind2": " "
}
},
{
"948": {
"subfields": [
{
"a": "20171013"
},
{
"b": "m"
},
{
"d": "batch"
},
{
"e": "lts"
},
{
"x": "deloclcprefix"
}
],
"ind1": "2",
"ind2": " "
}
}
]
}

Code snippet

to parse MARC file and print all information to console


public class App {

public static void main(String args[]) throws Exception {

// path to .mrc file
String path = "";

// Input Stream from file
InputStream in = new FileInputStream(path);
MarcReader reader = new MarcStreamReader(in);
while (reader.hasNext()) {
Record record = reader.next();

Leader leader = record.getLeader();

List<ControlField> controlFields = record.getControlFields();
List<DataField> dataFields = record.getDataFields();

System.out.println();
System.out.println("LEADER: " + leader);
System.out.println("Control fields: ");
controlFields.forEach(System.out::println);
System.out.println("Data fields: ");
dataFields.forEach(System.out::println);
System.out.println();
}
}
}


Transform MARCJson to MARCXML.

Code snippet


Code Block
languagejava
titleconvert MARCJson to MARCXML and print to console:
InputStream fileInputStream = new FileInputStream(INPUT_JSON_FILE);
MarcReader marcJsonReader = new MarcJsonReader(fileInputStream);
StringWriter writer = new StringWriter();

MarcXmlWriter marcXmlWriter = new MarcXmlWriter(System.out, true);

while (marcJsonReader.hasNext()) {
    Record record = marcJsonReader.next();
    marcXmlWriter.write(record);
}
marcXmlWriter.close();
fileInputStream.close();


Code Block
languagejs
titleMARCJSON source
collapsetrue
{
  "leader": "01741nam a2200373 cb4500",
  "fields": [
    {
      "001": "101073931X"
 },
    {
      "003": "DE-601"
 },
    {
      "005": "20180416162657.0"
 },
    {
      "008": "180111s2018\\\\\\\\sz\\\\\\\\\\\\\\\\\\\\\\\\000\\0\\eng\\d"
 },
    {
      "020": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "3319643991"
 },
          {
            "9": "3-319-64399-1"
 }
        ]
      }
    },
    {
      "020": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "9783319643991"
 },
          {
            "9": "978-3-319-64399-1"
 }
        ]
      }
    },
    {
      "020": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "9783319644004 (electronic)"
 },
          {
            "9": "978-3-319-64400-4"
 }
        ]
      }
    },
    {
      "035": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "(OCoLC)ocn992783736"
 }
        ]
      }
    },
    {
      "035": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "(OCoLC)992783736"
 }
        ]
      }
    },
    {
      "035": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "(DE-599)GBV101073931X"
 }
        ]
      }
    },
    {
      "040": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "b": "ger"
 },
          {
            "c": "GBVCP"
 },
          {
            "e": "rda"
 }
        ]
      }
    },
    {
      "041": {
        "ind1": "0",
        "ind2": "\\",
        "subfields": [
          {
            "a": "eng"
 }
        ]
      }
    },
    {
      "245": {
        "ind1": "0",
        "ind2": "0",
        "subfields": [
          {
            "a": "Futures, biometrics and neuroscience research"
 },
          {
            "c": "Luiz Moutinho, Mladen Sokele, editors"
 }
        ]
      }
    },
    {
      "264": {
        "ind1": "3",
        "ind2": "1",
        "subfields": [
          {
            "a": "Cham"
 },
          {
            "b": "Palgrave Macmillan"
 },
          {
            "c": "[2018]"
 }
        ]
      }
    },
    {
      "300": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "xxix, 224 Seiten"
 },
          {
            "b": "Illustrationen"
 }
        ]
      }
    },
    {
      "336": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "Text"
 },
          {
            "b": "txt"
 },
          {
            "2": "rdacontent"
 }
        ]
      }
    },
    {
      "337": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "ohne Hilfsmittel zu benutzen"
 },
          {
            "b": "n"
 },
          {
            "2": "rdamedia"
 }
        ]
      }
    },
    {
      "338": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "Band"
 },
          {
            "b": "nc"
 },
          {
            "2": "rdacarrier"
 }
        ]
      }
    },
    {
      "490": {
        "ind1": "0",
        "ind2": "\\",
        "subfields": [
          {
            "a": "Innovative research methodologies in management"
 },
          {
            "v": " \/ Luiz Moutinho, Mladen Sokele ; Volume 2"
 }
        ]
      }
    },
    {
      "500": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "Enthält 9 Beiträge"
 }
        ]
      }
    },
    {
      "650": {
        "ind1": "\\",
        "ind2": "7",
        "subfields": [
          {
            "8": "1.1\\x"
 },
          {
            "a": "Betriebswirtschaftslehre"
 },
          {
            "0": "(DE-601)091351391"
 },
          {
            "0": "(DE-STW)12041-5"
 },
          {
            "2": "stw"
 }
        ]
      }
    },
    {
      "650": {
        "ind1": "\\",
        "ind2": "7",
        "subfields": [
          {
            "8": "1.2\\x"
 },
          {
            "a": "Management"
 },
          {
            "0": "(DE-601)091376173"
 },
          {
            "0": "(DE-STW)12085-6"
 },
          {
            "2": "stw"
 }
        ]
      }
    },
    {
      "650": {
        "ind1": "\\",
        "ind2": "7",
        "subfields": [
          {
            "8": "1.3\\x"
 },
          {
            "a": "Wissenschaftliche Methode"
 },
          {
            "0": "(DE-601)091401445"
 },
          {
            "0": "(DE-STW)16727-0"
 },
          {
            "2": "stw"
 }
        ]
      }
    },
    {
      "700": {
        "ind1": "1",
        "ind2": "\\",
        "subfields": [
          {
            "a": "Moutinho, Luiz"
 },
          {
            "e": "HerausgeberIn"
 },
          {
            "4": "edt"
 },
          {
            "0": "(DE-601)509450954"
 },
          {
            "0": "(DE-588)131450204"
 }
        ]
      }
    },
    {
      "700": {
        "ind1": "1",
        "ind2": "\\",
        "subfields": [
          {
            "a": "Sokele, Mladen"
 },
          {
            "e": "HerausgeberIn"
 },
          {
            "4": "edt"
 }
        ]
      }
    },
    {
      "830": {
        "ind1": "\\",
        "ind2": "0",
        "subfields": [
          {
            "a": "Innovative research methodologies in management"
 },
          {
            "b": " \/ Luiz Moutinho, Mladen Sokele"
 },
          {
            "v": "Volume 2"
 },
          {
            "9": "2.2018"
 },
          {
            "w": "(DE-601)1011380293"
 }
        ]
      }
    },
    {
      "856": {
        "ind1": "4",
        "ind2": "2",
        "subfields": [
          {
            "y": "Inhaltsverzeichnis"
 },
          {
            "u": "http:\/\/www.gbv.de\/dms\/zbw\/101073931X.pdf"
 },
          {
            "m": "V:DE-601;B:DE-206"
 },
          {
            "q": "application\/pdf"
 },
          {
            "3": "Inhaltsverzeichnis"
 }
        ]
      }
    },
    {
      "900": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "a": "GBV"
 },
          {
            "b": "ZBW Kiel <206>"
 },
          {
            "d": "!H:! A18-1775"
 },
          {
            "x": "L"
 },
          {
            "z": "LC"
 },
          {
            "s": "206\/1"
 }
        ]
      }
    },
    {
      "954": {
        "ind1": "\\",
        "ind2": "\\",
        "subfields": [
          {
            "0": "ZBW Kiel <206>"
 },
          {
            "a": "26"
 },
          {
            "b": "1740761685"
 },
          {
            "c": "01"
 },
          {
            "f": "H:"
 },
          {
            "d": "A18-1775"
 },
          {
            "e": "u"
 },
          {
            "x": "206\/1"
 }
        ]
      }
    }
  ]
}


Code Block
themeConfluence
titleMARCXML result
collapsetrue
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<marc:collection xmlns:marc="http://www.loc.gov/MARC21/slim">
  <marc:record>
    <marc:leader>01741nam a2200373 cb4500</marc:leader>
    <marc:controlfield tag="001">101073931X</marc:controlfield>
    <marc:controlfield tag="003">DE-601</marc:controlfield>
    <marc:controlfield tag="005">20180416162657.0</marc:controlfield>
    <marc:controlfield tag="008">180111s2018\\\\sz\\\\\\\\\\\\000\0\eng\d</marc:controlfield>
    <marc:datafield ind1="\" ind2="\" tag="020">
      <marc:subfield code="a">3319643991</marc:subfield>
      <marc:subfield code="9">3-319-64399-1</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="020">
      <marc:subfield code="a">9783319643991</marc:subfield>
      <marc:subfield code="9">978-3-319-64399-1</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="020">
      <marc:subfield code="a">9783319644004 (electronic)</marc:subfield>
      <marc:subfield code="9">978-3-319-64400-4</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="035">
      <marc:subfield code="a">(OCoLC)ocn992783736</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="035">
      <marc:subfield code="a">(OCoLC)992783736</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="035">
      <marc:subfield code="a">(DE-599)GBV101073931X</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="040">
      <marc:subfield code="b">ger</marc:subfield>
      <marc:subfield code="c">GBVCP</marc:subfield>
      <marc:subfield code="e">rda</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="0" ind2="\" tag="041">
      <marc:subfield code="a">eng</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="0" ind2="0" tag="245">
      <marc:subfield code="a">Futures, biometrics and neuroscience research</marc:subfield>
      <marc:subfield code="c">Luiz Moutinho, Mladen Sokele, editors</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="3" ind2="1" tag="264">
      <marc:subfield code="a">Cham</marc:subfield>
      <marc:subfield code="b">Palgrave Macmillan</marc:subfield>
      <marc:subfield code="c">[2018]</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="300">
      <marc:subfield code="a">xxix, 224 Seiten</marc:subfield>
      <marc:subfield code="b">Illustrationen</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="336">
      <marc:subfield code="a">Text</marc:subfield>
      <marc:subfield code="b">txt</marc:subfield>
      <marc:subfield code="2">rdacontent</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="337">
      <marc:subfield code="a">ohne Hilfsmittel zu benutzen</marc:subfield>
      <marc:subfield code="b">n</marc:subfield>
      <marc:subfield code="2">rdamedia</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="338">
      <marc:subfield code="a">Band</marc:subfield>
      <marc:subfield code="b">nc</marc:subfield>
      <marc:subfield code="2">rdacarrier</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="0" ind2="\" tag="490">
      <marc:subfield code="a">Innovative research methodologies in management</marc:subfield>
      <marc:subfield code="v"> / Luiz Moutinho, Mladen Sokele ; Volume 2</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="500">
      <marc:subfield code="a">Enthält 9 Beiträge</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="7" tag="650">
      <marc:subfield code="8">1.1\x</marc:subfield>
      <marc:subfield code="a">Betriebswirtschaftslehre</marc:subfield>
      <marc:subfield code="0">(DE-601)091351391</marc:subfield>
      <marc:subfield code="0">(DE-STW)12041-5</marc:subfield>
      <marc:subfield code="2">stw</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="7" tag="650">
      <marc:subfield code="8">1.2\x</marc:subfield>
      <marc:subfield code="a">Management</marc:subfield>
      <marc:subfield code="0">(DE-601)091376173</marc:subfield>
      <marc:subfield code="0">(DE-STW)12085-6</marc:subfield>
      <marc:subfield code="2">stw</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="7" tag="650">
      <marc:subfield code="8">1.3\x</marc:subfield>
      <marc:subfield code="a">Wissenschaftliche Methode</marc:subfield>
      <marc:subfield code="0">(DE-601)091401445</marc:subfield>
      <marc:subfield code="0">(DE-STW)16727-0</marc:subfield>
      <marc:subfield code="2">stw</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="1" ind2="\" tag="700">
      <marc:subfield code="a">Moutinho, Luiz</marc:subfield>
      <marc:subfield code="e">HerausgeberIn</marc:subfield>
      <marc:subfield code="4">edt</marc:subfield>
      <marc:subfield code="0">(DE-601)509450954</marc:subfield>
      <marc:subfield code="0">(DE-588)131450204</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="1" ind2="\" tag="700">
      <marc:subfield code="a">Sokele, Mladen</marc:subfield>
      <marc:subfield code="e">HerausgeberIn</marc:subfield>
      <marc:subfield code="4">edt</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="0" tag="830">
      <marc:subfield code="a">Innovative research methodologies in management</marc:subfield>
      <marc:subfield code="b"> / Luiz Moutinho, Mladen Sokele</marc:subfield>
      <marc:subfield code="v">Volume 2</marc:subfield>
      <marc:subfield code="9">2.2018</marc:subfield>
      <marc:subfield code="w">(DE-601)1011380293</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="4" ind2="2" tag="856">
      <marc:subfield code="y">Inhaltsverzeichnis</marc:subfield>
      <marc:subfield code="u">http://www.gbv.de/dms/zbw/101073931X.pdf</marc:subfield>
      <marc:subfield code="m">V:DE-601;B:DE-206</marc:subfield>
      <marc:subfield code="q">application/pdf</marc:subfield>
      <marc:subfield code="3">Inhaltsverzeichnis</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="900">
      <marc:subfield code="a">GBV</marc:subfield>
      <marc:subfield code="b">ZBW Kiel &lt;206&gt;</marc:subfield>
      <marc:subfield code="d">!H:! A18-1775</marc:subfield>
      <marc:subfield code="x">L</marc:subfield>
      <marc:subfield code="z">LC</marc:subfield>
      <marc:subfield code="s">206/1</marc:subfield>
    </marc:datafield>
    <marc:datafield ind1="\" ind2="\" tag="954">
      <marc:subfield code="0">ZBW Kiel &lt;206&gt;</marc:subfield>
      <marc:subfield code="a">26</marc:subfield>
      <marc:subfield code="b">1740761685</marc:subfield>
      <marc:subfield code="c">01</marc:subfield>
      <marc:subfield code="f">H:</marc:subfield>
      <marc:subfield code="d">A18-1775</marc:subfield>
      <marc:subfield code="e">u</marc:subfield>
      <marc:subfield code="x">206/1</marc:subfield>
    </marc:datafield>
  </marc:record>
</marc:collection>


...