在我的json文件中添加图层,并使其与javascript一起使用

时间:2019-06-28 19:57:52

标签: javascript json glossary

我正在尝试为我的网页创建词汇表,如果我的词汇表中包含整个单词,则会在弹出的工具提示中定义它们。

我找到了一个效果很好的jquery插件,但是,我需要对其进行一些修改,并且我对JSON / javascript没有经验。

这是JSON文件的格式:

  {
    "term" : "termC",
    "description" : "definition C"
  },
  {
    "term": "term D",
    "description": "definition D"
  }
]

我想添加到JSON文件中以使其像这样的额外层:

[
{
      "A" : [
  {
    "term" : "termA",
    "description" : "definition A"
  },
  {
    "term": "term B",
    "description": "definition b"
  }
]
      "B" : [
  {
    "term" : "termC",
    "description" : "definition C"
  },
  {
    "term": "term D",
    "description": "definition D"
  }
]
}

并且仍然可以使用javascript。

我在GitHub的https://github.com/PebbleRoad/glossarizer上找到了该插件。 javascript是一个长文件,为了尊重StackOverflow的规则,我无法覆盖整个文件,但这是我认为重要的部分:

    base.terms = []

    /* Excludes array */

    base.excludes = []

    /* Replaced words array */

    base.replaced = []

    /* Regex Tags */

    base.regexOption = (base.options.caseSensitive ? '' : 'i') + (base.options.replaceOnce ? '' : 'g')

    /* Fetch glossary JSON */

    $.getJSON(this.options.sourceURL).then(function (data) {
      base.glossary = data

      if (!base.glossary.length || base.glossary.length == 0) return

      /**
       * Get all terms
       */

      for (var i = 0; i < base.glossary.length; i++) {
        var terms = base.glossary[i].term.split(',')

        for (var j = 0; j < terms.length; j++) {
          /* Trim */

          var trimmed = terms[j].replace(/^\s+|\s+$/g, ''),
            isExclusion = trimmed.indexOf('!')

          if (isExclusion == -1 || isExclusion != 0) {
            /* Glossary terms array */

            base.terms.push(trimmed)
          } else {
            /* Excluded terms array */

            base.excludes.push(trimmed.substr(1))
          }
        }
      }

      /**
       * Wrap terms
       */

      base.wrapTerms()
    })
  }

0 个答案:

没有答案