Ignore unknown fields in Zotero.Item::fromJSON()
This commit is contained in:
parent
3025123cb8
commit
6d64526648
2 changed files with 18 additions and 1 deletions
|
@ -3819,12 +3819,18 @@ Zotero.Item.prototype.fromJSON = function (json) {
|
||||||
// Item fields
|
// Item fields
|
||||||
default:
|
default:
|
||||||
let fieldID = Zotero.ItemFields.getID(field);
|
let fieldID = Zotero.ItemFields.getID(field);
|
||||||
|
if (!fieldID) {
|
||||||
|
Zotero.logError("Discarding unknown JSON field " + field + " for item "
|
||||||
|
+ this.libraryKey);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
isValidForType[field] = Zotero.ItemFields.isValidForType(
|
isValidForType[field] = Zotero.ItemFields.isValidForType(
|
||||||
Zotero.ItemFields.getFieldIDFromTypeAndBase(itemTypeID, fieldID) || fieldID,
|
Zotero.ItemFields.getFieldIDFromTypeAndBase(itemTypeID, fieldID) || fieldID,
|
||||||
this.itemTypeID
|
this.itemTypeID
|
||||||
);
|
);
|
||||||
if (!isValidForType[field]) {
|
if (!isValidForType[field]) {
|
||||||
Zotero.logError("Discarding unknown JSON field " + field + " for item " + this.libraryKey);
|
Zotero.logError("Discarding invalid field " + field + " for type " + itemTypeID
|
||||||
|
+ " for item " + this.libraryKey);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
this.setField(field, json[field]);
|
this.setField(field, json[field]);
|
||||||
|
|
|
@ -966,6 +966,17 @@ describe("Zotero.Item", function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("#fromJSON()", function () {
|
describe("#fromJSON()", function () {
|
||||||
|
it("should ignore unknown fields", function* () {
|
||||||
|
var json = {
|
||||||
|
itemType: "journalArticle",
|
||||||
|
title: "Test",
|
||||||
|
foo: "Invalid"
|
||||||
|
};
|
||||||
|
var item = new Zotero.Item;
|
||||||
|
item.fromJSON(json);
|
||||||
|
assert.equal(item.getField('title'), 'Test');
|
||||||
|
})
|
||||||
|
|
||||||
it("should accept ISO 8601 dates", function* () {
|
it("should accept ISO 8601 dates", function* () {
|
||||||
var json = {
|
var json = {
|
||||||
itemType: "journalArticle",
|
itemType: "journalArticle",
|
||||||
|
|
Loading…
Add table
Reference in a new issue