diff --git a/main/src/com/google/refine/expr/EvalError.java b/main/src/com/google/refine/expr/EvalError.java index 5f4912deb..34682cdfc 100644 --- a/main/src/com/google/refine/expr/EvalError.java +++ b/main/src/com/google/refine/expr/EvalError.java @@ -39,6 +39,8 @@ import java.util.Properties; import org.json.JSONException; import org.json.JSONWriter; +import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.refine.Jsonizable; /** @@ -50,6 +52,7 @@ import com.google.refine.Jsonizable; public class EvalError implements Serializable, Jsonizable { private static final long serialVersionUID = -102681220092874080L; + @JsonProperty("message") final public String message; public EvalError(String message) { @@ -75,5 +78,10 @@ public class EvalError implements Serializable, Jsonizable { writer.key("message"); writer.value(message); writer.endObject(); } + + @JsonProperty("type") + public String getType() { + return "error"; + } } diff --git a/main/src/com/google/refine/model/ReconStats.java b/main/src/com/google/refine/model/ReconStats.java index a0c3ea6d4..00f555e29 100644 --- a/main/src/com/google/refine/model/ReconStats.java +++ b/main/src/com/google/refine/model/ReconStats.java @@ -40,6 +40,8 @@ import org.json.JSONException; import org.json.JSONObject; import org.json.JSONWriter; +import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.refine.Jsonizable; import com.google.refine.expr.ExpressionUtils; import com.google.refine.model.Recon.Judgment; @@ -53,8 +55,11 @@ public class ReconStats implements Jsonizable { ); } + @JsonProperty("nonBlanks") final public int nonBlanks; + @JsonProperty("newTopics") final public int newTopics; + @JsonProperty("matchedTopics") final public int matchedTopics; public ReconStats(int nonBlanks, int newTopics, int matchedTopics) { diff --git a/main/src/com/google/refine/model/ReconType.java b/main/src/com/google/refine/model/ReconType.java index 088da69b5..3f172bf28 100644 --- a/main/src/com/google/refine/model/ReconType.java +++ b/main/src/com/google/refine/model/ReconType.java @@ -39,6 +39,8 @@ import org.json.JSONException; import org.json.JSONObject; import org.json.JSONWriter; +import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.refine.Jsonizable; /** @@ -47,7 +49,9 @@ import com.google.refine.Jsonizable; * store the (expected) types of new columns. */ public class ReconType implements Jsonizable { + @JsonProperty("id") public String id; + @JsonProperty("name") public String name; public ReconType(String id, String name) { diff --git a/main/src/com/google/refine/util/ParsingUtilities.java b/main/src/com/google/refine/util/ParsingUtilities.java index 8b51fcc04..e067a26fd 100644 --- a/main/src/com/google/refine/util/ParsingUtilities.java +++ b/main/src/com/google/refine/util/ParsingUtilities.java @@ -59,6 +59,9 @@ import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.databind.module.SimpleModule; @@ -74,6 +77,8 @@ public class ParsingUtilities { module.addSerializer(double.class, new SerializationFilters.DoubleSerializer()); module.addSerializer(OffsetDateTime.class, new SerializationFilters.DateSerializer()); mapper.registerModule(module); + mapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } public static final FilterProvider defaultFilters = new SimpleFilterProvider()