From e4623a9e5cda86b2f5cf81a04a91c0d77ddd970b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=CC=88rg=20Prante?= Date: Fri, 16 Sep 2016 23:26:53 +0200 Subject: [PATCH] allow missing indicators when writing JSON --- src/main/java/org/xbib/marc/json/MarcJsonWriter.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/xbib/marc/json/MarcJsonWriter.java b/src/main/java/org/xbib/marc/json/MarcJsonWriter.java index 492a227..aa80db3 100644 --- a/src/main/java/org/xbib/marc/json/MarcJsonWriter.java +++ b/src/main/java/org/xbib/marc/json/MarcJsonWriter.java @@ -44,6 +44,8 @@ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Clo public static final String TYPE_TAG = "_TYPE"; + private static final String EMPTY_STRING = ""; + private static final String JSON_1 = "\":\""; private final Lock lock = new ReentrantLock(); @@ -262,8 +264,13 @@ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Clo if (count > 0) { sb.append(","); } - sb.append("\"").append(marcField.getTag()).append("\":{\"") - .append(marcField.getIndicator().replace(' ', '_')).append("\":"); + String tag = marcField.getTag(); + String indicator = marcField.getIndicator(); + if (indicator == null) { + indicator = EMPTY_STRING; + } + sb.append("\"").append(tag).append("\":{\"") + .append(indicator.replace(' ', '_')).append("\":"); if (marcField.getSubfields().size() == 1) { MarcField.Subfield subfield = marcField.getSubfields().get(0); sb.append("{\"").append(subfield.getId()).append(JSON_1).append(escape(subfield.getValue())).append("\"}");