diff --git a/src/verse-ref.test.ts b/src/verse-ref.test.ts index d0d81a6..ee4d8cc 100644 --- a/src/verse-ref.test.ts +++ b/src/verse-ref.test.ts @@ -187,17 +187,27 @@ describe('VerseRef', () => { describe('Serialization', () => { it('should serialize empty VerseRef', () => { const vref = new VerseRef(); - expect(vref.toJSON()).toEqual({ book: '', chapterNum: 0, verseNum: 0 }); + + const json = vref.toJSON(); + + expect(json).toEqual({ book: '', chapterNum: 0, verseNum: 0 }); + // Needed to help .NET deserialization. + expect(json).not.toHaveProperty('verse'); }); it('should serialize VerseRef', () => { const vref = new VerseRef(1, 2, 3, ScrVers.Septuagint); - expect(vref.toJSON()).toEqual({ + + const json = vref.toJSON(); + + expect(json).toEqual({ book: 'GEN', chapterNum: 2, verseNum: 3, versificationStr: 'Septuagint', }); + // Needed to help .NET deserialization. + expect(json).not.toHaveProperty('verse'); }); it('should stringify VerseRef', () => { diff --git a/src/verse-ref.ts b/src/verse-ref.ts index dc7bbfe..61755e0 100644 --- a/src/verse-ref.ts +++ b/src/verse-ref.ts @@ -484,13 +484,15 @@ export class VerseRef { toJSON(): SerializedVerseRef { let verse: string | undefined = this.verse; if (verse === '' || verse === this.verseNum.toString()) verse = undefined; - return { + const json = { book: this.book, chapterNum: this.chapterNum, verseNum: this.verseNum, verse, versificationStr: this.versificationStr, }; + if (!verse) delete json.verse; + return json; } /**