You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
51 KiB
HTML

12 months ago
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-jsonschema" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.0.0">
<title data-rh="true">2.13 JSON Schema 使用 | Furion</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="http://furion.baiqian.ltd/docs/jsonschema"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="2.13 JSON Schema 使用 | Furion"><meta data-rh="true" name="description" content="配置文件也要智能提示"><meta data-rh="true" property="og:description" content="配置文件也要智能提示"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="http://furion.baiqian.ltd/docs/jsonschema"><link data-rh="true" rel="alternate" href="http://furion.baiqian.ltd/docs/jsonschema" hreflang="en"><link data-rh="true" rel="alternate" href="http://furion.baiqian.ltd/docs/jsonschema" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Furion RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Furion Atom Feed"><link rel="stylesheet" href="/assets/css/styles.3f87a095.css">
<script src="/assets/js/runtime~main.89709a83.js" defer="defer"></script>
<script src="/assets/js/main.10e5dc01.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const a=new URLSearchParams(window.location.search).entries();for(var[t,e]of a)if(t.startsWith("docusaurus-data-")){var n=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(n,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"><div class="floatbar_hUWl"><div class="qrcode_sWwE"><img title="微信扫码关注 Furion 官方公众号" src="/img/weixin_qrcode.jpg" style="display:block"><div>❤️ 关注 Furion 微信公众号有惊喜哦!</div></div><div style="display:flex;flex-direction:row-reverse;align-items:flex-start"><div class="title_SD0k">🫠 遇到问题了</div><div class="extend__5i1"><a class="item_Y35a" href="/docs/subscribe"><div style="flex:1"><div class="itemTitle_If_T">⭐️ VIP 服务 ⭐️</div><div class="itemDesc_dp7r">仅需 499 元/年,尊享 365 天项目无忧</div></div><div class="jiantou_mV_o"></div></a><div class="item_Y35a"><div style="flex:1"><div class="itemTitle_If_T">问题反馈</div><div class="itemDesc_dp7r">到 Furion 开源仓库反馈</div></div><div class="jiantou_mV_o"></div></div></div></div></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#4623d9;color:yellow" role="banner"><div class="content_knG7 announcementBarContent_xLdY">⭐️ 开通 VIP 服务仅需 499 元/年,尊享 365 天项目无忧 <a href="/docs/subscribe" style="background-color:rgb(199, 29, 36);color:#ffffff;padding:1px 10px;border-radius:3px;text-decoration:none;display:inline-block;margin:0 5px;font-size:12px;cursor:pointer;">立即开通</a>⭐️</div></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/furionlogo.png" alt="Furion Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/furionlogo.png" alt="Furion Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Furion</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/category/appendix">文档</a><a class="navbar__item navbar__link" href="/docs/global/app">静态类</a><a class="navbar__item navbar__link" href="/docs/settings/appsettings">配置</a><a class="navbar__item navbar__link" href="/blog">博客</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">更新日志</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/upgrade">📝 查看日志v4.9.1.7</a></li><li><a class="dropdown__link" href="/docs/target">🚀 路线图</a></li></ul></div><a href="http://furion.baiqian.ltd/api/api" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">API<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></div><div class="navbar__items navbar__it
<p><code>JSON Schema</code> 是用于验证 <code>JSON</code> 数据结构的强大工具,<code>Schema</code> 可以理解为模式或者规则。</p>
<p><strong>有了 <code>JSON Schema</code> 再也不怕配置写错的情况了!</strong></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="2132-学习-json-schema-编写">2.13.2 学习 <code>JSON Schema</code> 编写<a href="#2132-学习-json-schema-编写" class="hash-link" aria-label="Direct link to 2132-学习-json-schema-编写" title="Direct link to 2132-学习-json-schema-编写"></a></h2>
<p>作为一个框架提供 <code>JSON Schema</code> 是非常有必要的,可以让开发者在添加配置的时候能够有智能提示和校验功能,如果想学习 <code>JSON Schema</code> 编写可以查看以下文档:</p>
<ul>
<li><a href="https://json-schema.apifox.cn/" target="_blank" rel="noopener noreferrer">https://json-schema.apifox.cn/</a></li>
<li><a href="https://zhuanlan.zhihu.com/p/355175938" target="_blank" rel="noopener noreferrer">https://zhuanlan.zhihu.com/p/355175938</a></li>
</ul>
<p>这里也提供一个非常便捷的创建 <code>JSON Schema</code> 的在线网站,可以根据 <code>json</code> 文件内容自动生成 <code>JSON Schema</code>,之后进行小量修改即可:</p>
<p><a href="https://hellosean1025.github.io/json-schema-visual-editor/" target="_blank" rel="noopener noreferrer">https://hellosean1025.github.io/json-schema-visual-editor/</a></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="2133-框架提供">2.13.3 框架提供<a href="#2133-框架提供" class="hash-link" aria-label="Direct link to 2.13.3 框架提供" title="Direct link to 2.13.3 框架提供"></a></h2>
<p><code>Furion</code> 框架提供了完整的 <code>Furion</code><code>ASP.NET Core</code><code>JSON Schema</code> 文件,通过该文件可以在编写配置文件时提供完整的智能提示和校验。</p>
<p><strong><a href="https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json" target="_blank" rel="noopener noreferrer">查看 <code>JSON Schema</code> 源码地址</a></strong></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="2134-如何使用">2.13.4 如何使用<a href="#2134-如何使用" class="hash-link" aria-label="Direct link to 2.13.4 如何使用" title="Direct link to 2.13.4 如何使用"></a></h2>
<p>使用方式非常简单,只需要在 <code>.json</code> 文件的头部添加 <code>&quot;$schema&quot;: &quot;https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json&quot;,</code> 即可,如:</p>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm"><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">{</span></span><br></span><span class="token-line theme-code-block-highlighted-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;$schema&quot;: &quot;https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json&quot;,</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain" style="display:inline-block"></span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;Logging&quot;: {</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;LogLevel&quot;: {</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;Default&quot;: &quot;Information&quot;,</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;Microsoft&quot;: &quot;Warning&quot;,</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;Microsoft.Hosting.Lifetime&quot;: &quot;Information&quot;,</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;Microsoft.EntityFrameworkCore&quot;: &quot;Information&quot;,</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware&quot;: &quot;Information&quot;</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> }</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> },</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"> &quot;AllowedHosts&quot;: &quot;*&quot;</span></span><br></span><span class="token-line codeLine_lJS_" style="color:#bfc7d5"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">}</span></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentCol
<img src="/img/js1.png">
<img src="/img/js2.png">
<img src="/img/js3.png">
<img src="/img/js4.png">
<img src="/img/js7.png">
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="2135-json-schema-失效解决">2.13.5 <code>JSON Schema</code> 失效解决<a href="#2135-json-schema-失效解决" class="hash-link" aria-label="Direct link to 2135-json-schema-失效解决" title="Direct link to 2135-json-schema-失效解决"></a></h2>
<p>如果添加了 <code>&quot;$schema&quot;: &quot;https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json&quot;,</code> 依然无法进行智能提示校验,可尝试关闭 <code>.json</code> 文件再重新打开。</p>
<p>如果上面步骤依然无效,那么还可以通过下面方式:</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="21351-visual-studio">2.13.5.1 <code>Visual Studio</code><a href="#21351-visual-studio" class="hash-link" aria-label="Direct link to 21351-visual-studio" title="Direct link to 21351-visual-studio"></a></h3>
<img src="/img/js5.png">
<img src="/img/js6.png">
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="21352-visual-studio-code">2.13.5.2 <code>Visual Studio Code</code><a href="#21352-visual-studio-code" class="hash-link" aria-label="Direct link to 21352-visual-studio-code" title="Direct link to 21352-visual-studio-code"></a></h3>
<p>重启 <code>Visual Studio Code</code> 即可。</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="2136-如何更新-json-schema">2.13.6 如何更新 <code>JSON Schema</code><a href="#2136-如何更新-json-schema" class="hash-link" aria-label="Direct link to 2136-如何更新-json-schema" title="Direct link to 2136-如何更新-json-schema"></a></h2>
<p>默认情况下,<code>JSON Schema</code> 在第一次获取之后会自动缓存起来,可能会导致 <code>.json</code> 文件提示错误,这个时候只需要删除缓存即可。</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="21361-visual-studio">2.13.6.1 <code>Visual Studio</code><a href="#21361-visual-studio" class="hash-link" aria-label="Direct link to 21361-visual-studio" title="Direct link to 21361-visual-studio"></a></h3>
<p>打开电脑的 <code>运行</code> 并输入 <code>%AppData%</code>,之后进入 <code>C:\Users\你的电脑用户名\AppData\Local\Microsoft\VisualStudio</code></p>
<img src="/img/js8.png">
<img src="/img/js9.png">
<img src="/img/js10.png">
<p><strong>之后删除 <code>http/https</code> 开头的文件即可。</strong></p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="21362-visual-studio-code">2.13.6.2 <code>Visual Studio Code</code><a href="#21362-visual-studio-code" class="hash-link" aria-label="Direct link to 21362-visual-studio-code" title="Direct link to 21362-visual-studio-code"></a></h3>
<p>同上,运行进入 <code>%AppData%</code>,之后进入下列路径:<code>C:\Users\你的电脑用户名\AppData\Roaming\Code\User\globalStorage\vscode.json-language-features\json-schema-cache</code></p>
<img src="/img/js11.png">
<p><strong>之后删除这些文件即可。</strong></p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="2137-反馈与建议">2.13.7 反馈与建议<a href="#2137-反馈与建议" class="hash-link" aria-label="Direct link to 2.13.7 反馈与建议" title="Direct link to 2.13.7 反馈与建议"></a></h2>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>与我们交流</div><div class="admonitionContent_BuS1"><p>给 Furion 提 <a href="https://gitee.com/dotnetchina/Furion/issues/new?issue" target="_blank" rel="noopener noreferrer">Issue</a></p></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><a href="http://github.crmeb.net/u/furion" target="_blank" style="display:block;margin-bottom:20px;text-decoration:none;position:relative;border-radius:5px;overflow:hidden;color:#25c2a0" title="CRMEB 专注开源电商系统研发"><img src="/img/crmeb-spec.jpg" style="display:block;pointer-events:none;max-width:100%"><span style="position:absolute;display:block;right:0;bottom:0;z-index:5;font-size:12px;background-color:rgba(0,0,0,0.8);padding:0 5px">特别赞助</span></a><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a class="ass_kwc6" style="margin:0;margin-bottom:10px;height:80px;z-index:999" href="/docs/subscribe"><div class="title_MSGy">开通 VIP 服务尊享一对一技术指导</div><div class="progress_esN_"><div class="number_F0eG">344</div><div class="percent_Dln9"><div class="current_QYTp" style="width:34.4%"></div></div><div class="number_F0eG">1000</div></div></a><a href="https://gitee.com/dotnetchina/Furion/tree/v4/handbook/docs/jsonschema.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_VsjB"><div class="donate_FEDP" style="margin:0;margin-bottom:10px;border:2px solid #ffb02e;margin-top:-4px" title="您的支持是我们坚持完善下去的动力!"><div style="position:relative;margin-right:9px"><img src="/img/donateme.png" style="height:100%;max-height:100%;display:block;min-width:70px" alt="赞助 Furion"><span style="position:absolute;top:25px;left:0;right:0;font-size:12px;z-index:1;text-align:center;color:white;font-weight:bold;background-color:rgba(0, 0, 0, 0.4)">查看大图</span></div><div style="display:flex;flex:1;flex-direction:column;justify-content:space-between;padding:5px 0 5px 0"><h3 style="font-weight:500;font-size:17px;margin:4px 0 0 0;text-align:left;background:linear-gradient(to right, red, blue);background-clip:text;-webkit-background-clip:text;color:transparent;white-space:nowrap;cursor:pointer">谢谢您对 Furion 的认可!</h3><div style="display:flex;justify-content:space-between;white-space:nowrap;margin-top:10px"><span style="font-size:12px;color:#ccc">微信ibaiqian</span><a href="https://gitee.com/dotnetchina/Furion" style="margin-right:6px" target="_blank"><img src="https://gitee.com/dotnetchina/Furion/badge/star.svg?theme=white" alt="star"></a></div></div></div><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2023-04-25T01:59:31.000Z">Apr 25, 2023</time></b> by <b>MonkSoul</b></span></div></div><a style="display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:space-between;padding-left:5px" title="⭐️ 开通 VIP 服务仅需 499 元/年,尊享 365 天项目无忧2323 ⭐️" href="/docs/subscribe"><div style="flex:1;margin:5px 5px 5px 0;user-se
</body>
</html>