@qubit-ltd/json 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json.cjs +188 -20
- package/dist/json.cjs.map +1 -1
- package/dist/json.min.cjs +1 -1
- package/dist/json.min.cjs.map +1 -1
- package/dist/json.min.mjs +1 -1
- package/dist/json.min.mjs.map +1 -1
- package/dist/json.mjs +188 -20
- package/dist/json.mjs.map +1 -1
- package/doc/api/Json.html +42 -0
- package/doc/api/LosslessNumber.html +3 -3
- package/doc/api/data/search.json +1 -1
- package/doc/api/global.html +3 -3
- package/doc/api/index.html +4 -4
- package/doc/api/scripts/core.js +719 -726
- package/doc/api/scripts/core.min.js +23 -23
- package/doc/api/scripts/resize.js +90 -90
- package/doc/api/scripts/search.js +267 -265
- package/doc/api/scripts/search.min.js +5 -5
- package/doc/api/scripts/third-party/Apache-License-2.0.txt +202 -202
- package/doc/api/scripts/third-party/fuse.js +1749 -9
- package/doc/api/scripts/third-party/hljs-line-num-original.js +367 -369
- package/doc/api/scripts/third-party/hljs-line-num.js +1 -1
- package/doc/api/scripts/third-party/hljs-original.js +5260 -5171
- package/doc/api/scripts/third-party/hljs.js +1 -1
- package/doc/api/scripts/third-party/popper.js +1287 -5
- package/doc/api/scripts/third-party/tippy.js +1499 -1
- package/doc/api/scripts/third-party/tocbot.js +757 -672
- package/doc/api/scripts/third-party/tocbot.min.js +1 -1
- package/doc/api/styles/clean-jsdoc-theme-base.css +1257 -1159
- package/doc/api/styles/clean-jsdoc-theme-dark.css +412 -412
- package/doc/api/styles/clean-jsdoc-theme-light.css +482 -482
- package/doc/api/styles/clean-jsdoc-theme-scrollbar.css +29 -29
- package/doc/api/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -1
- package/doc/api/styles/clean-jsdoc-theme.min.css +1 -1
- package/doc/json.min.visualization.html +15 -15
- package/doc/json.visualization.html +15 -15
- package/package.json +25 -24
package/doc/api/global.html
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Global</title><!--[if lt IE 9]>
|
|
2
|
-
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
3
|
-
<![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="LosslessNumber.html">LosslessNumber</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#getUnsafeReason">getUnsafeReason</a></div><div class="sidebar-section-children"><a href="global.html#isBigInt">isBigInt</a></div><div class="sidebar-section-children"><a href="global.html#isInteger">isInteger</a></div><div class="sidebar-section-children"><a href="global.html#isNumber">isNumber</a></div><div class="sidebar-section-children"><a href="global.html#isSafeNumber">isSafeNumber</a></div><div class="sidebar-section-children"><a href="global.html#json">json</a></div><div class="sidebar-section-children"><a href="global.html#toSafeNumberOrThrow">toSafeNumberOrThrow</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><article><div class="container-overview"></div><h2 id="members" class="subsection-title has-anchor">Members</h2><h3 class="name has-anchor" id="json"><span class="type-signature">(constant) </span>json<span class="type-signature"> :object</span></h3><div class="description"><p>A customized JSON object which supports lossless number parsing and stringifying.</p><p>This object provides two methods: <code>parse</code> and <code>stringify</code>, which are the same as the <code>JSON.parse</code> and <code>JSON.stringify</code> methods, except that they support lossless number parsing and stringifying.</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">object</span></li></ul></div><h2 id="methods" class="subsection-title has-anchor">Methods</h2><h3 class="name has-anchor" id="getUnsafeReason"><span class="type-signature"></span>getUnsafeReason<span class="signature">(value)</span><span class="type-signature"> → {string}</span></h3><div class="description"><p>When the provided value is an unsafe number, describe what the reason is</p><ul><li><code>'overflow'</code></li><li><code>'underflow'</code></li><li><code>'truncate_integer'</code></li><li><code>'truncate_float'</code></li><li><code>'none'</code> (when the value is safe)</li></ul></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The string represents a number to test.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>The reason why the value is unsafe. Returns <code>'none'</code> when the value is safe.</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">string</span></dd></dl></div><h3 class="name has-anchor" id="isBigInt"><span class="type-signature"></span>isBigInt<span class="signature">(value)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Test whether a string represents a BigInt.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"></td><td class="description last"><p>The string to test.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>true if the string contains a BigInt; false otherwise.</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="isInteger"><span class="type-signature"></span>isInteger<span class="signature">(value)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Test whether a string represents an integer.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"></td><td class="description last"><p>The string to test.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>true if the string contains an integer; false otherwise.</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="isNumber"><span class="type-signature"></span>isNumber<span class="signature">(value)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Test whether a string represents a number</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The string to test.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>true if the string contains a number; false otherwise.</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="isSafeNumber"><span class="type-signature"></span>isSafeNumber<span class="signature">(value, options)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Test whether a string can be safely represented with a number without information loss.</p><p>When the argument <code>approx</code> is true, floating point numbers that lose a few digits but are still approximately equal in value are considered safe too. Integer numbers must still be exactly equal.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The string to test.</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The options of the test. It may contain the following properties: - <code>approx: boolean</code>: indicates whether to consider approximately equal floating point numbers as safe. Default is <code>false</code>. - <code>requiredDigits: number</code>: the number of significant digits required for a floating point number to be considered approximately equal. Default is <code>14</code>.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>true if the string can be safely represented with a number; false otherwise.</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="toSafeNumberOrThrow"><span class="type-signature"></span>toSafeNumberOrThrow<span class="signature">(value, options)</span><span class="type-signature"> → {number}</span></h3><div class="description"><p>Convert a string into a number when it is safe to do so. Throws an error otherwise, explaining the reason.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The string to convert into a number.</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The options for conversion.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>Throws:</strong><dl><dt><div class="param-desc"><p>When the value is not safe to convert.</p></div></dt><dd></dd><dt><dl><dt>Type</dt><dd><span class="param-type">Error</span></dd></dl></dt><dd></dd></dl></div><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>The converted safe number.</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">number</span></dd></dl></div></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><div class="mobile-nav-links"></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="LosslessNumber.html">LosslessNumber</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#getUnsafeReason">getUnsafeReason</a></div><div class="sidebar-section-children"><a href="global.html#isBigInt">isBigInt</a></div><div class="sidebar-section-children"><a href="global.html#isInteger">isInteger</a></div><div class="sidebar-section-children"><a href="global.html#isNumber">isNumber</a></div><div class="sidebar-section-children"><a href="global.html#isSafeNumber">isSafeNumber</a></div><div class="sidebar-section-children"><a href="global.html#json">json</a></div><div class="sidebar-section-children"><a href="global.html#toSafeNumberOrThrow">toSafeNumberOrThrow</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Global</title><!--[if lt IE 9]>
|
|
2
|
+
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
3
|
+
<![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="home-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19z"/></symbol><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><div class="sidebar-items-container"><div class="sidebar-section-title"><a href="index.html" class="sidebar-home-anchor">首页</a></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-类"><div>类</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Json.html">Json</a></div><div class="sidebar-section-children"><a href="LosslessNumber.html">LosslessNumber</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-全局"><div>全局</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#getUnsafeReason">getUnsafeReason</a></div><div class="sidebar-section-children"><a href="global.html#isBigInt">isBigInt</a></div><div class="sidebar-section-children"><a href="global.html#isInteger">isInteger</a></div><div class="sidebar-section-children"><a href="global.html#isNumber">isNumber</a></div><div class="sidebar-section-children"><a href="global.html#isSafeNumber">isSafeNumber</a></div><div class="sidebar-section-children"><a href="global.html#json">json</a></div><div class="sidebar-section-children"><a href="global.html#toSafeNumberOrThrow">toSafeNumberOrThrow</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button home-button" aria-label="go-to-homepage"><svg><use xlink:href="#home-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">本页内容</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><article><div class="container-overview"></div><h2 id="properties" class="subsection-title has-anchor">属性</h2><div class="allow-overflow"><table class="props"><thead><tr><th>名称</th><th>类型</th><th class="last">描述</th></tr></thead><tbody><tr><td class="name"><code>json</code></td><td class="type"><span class="param-type"><a href="Json.html">Json</a></span></td><td class="description last"><p>A customized JSON object which supports lossless number parsing and stringifying.</p><p>This object provides two methods: <code>parse</code> and <code>stringify</code>, which are the same as the <code>JSON.parse</code> and <code>JSON.stringify</code> methods, except that they support lossless number parsing and stringifying.</p><p>Key differences from standard JSON:</p><ul><li>Large integers are preserved as BigInt instead of losing precision</li><li>Large floating-point numbers are preserved as LosslessNumber instances</li><li>Set and Map collections are automatically serialized as arrays</li><li>Maintains full compatibility with standard JSON API</li></ul></td></tr></tbody></table></div><h2 id="methods" class="subsection-title has-anchor">方法</h2><h3 class="name has-anchor" id="getUnsafeReason"><span class="type-signature"></span>getUnsafeReason<span class="signature">(value)</span><span class="type-signature"> → {string}</span></h3><div class="description"><p>When the provided value is an unsafe number, describe what the reason is</p><ul><li><code>'overflow'</code></li><li><code>'underflow'</code></li><li><code>'truncate_integer'</code></li><li><code>'truncate_float'</code></li><li><code>'none'</code> (when the value is safe)</li></ul></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>参数:</strong><table class="params"><thead><tr><th>名称</th><th>类型</th><th class="last">描述</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The string represents a number to test.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>返回值:</strong><div class="param-desc"><p>The reason why the value is unsafe. Returns <code>'none'</code> when the value is safe.</p></div><dl class="param-type"><dt>类型: </dt><dd><span class="param-type">string</span></dd></dl></div><h3 class="name has-anchor" id="isBigInt"><span class="type-signature"></span>isBigInt<span class="signature">(value)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Test whether a string represents a BigInt.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>参数:</strong><table class="params"><thead><tr><th>名称</th><th>类型</th><th class="last">描述</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"></td><td class="description last"><p>The string to test.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>返回值:</strong><div class="param-desc"><p>true if the string contains a BigInt; false otherwise.</p></div><dl class="param-type"><dt>类型: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="isInteger"><span class="type-signature"></span>isInteger<span class="signature">(value)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Test whether a string represents an integer.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>参数:</strong><table class="params"><thead><tr><th>名称</th><th>类型</th><th class="last">描述</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"></td><td class="description last"><p>The string to test.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>返回值:</strong><div class="param-desc"><p>true if the string contains an integer; false otherwise.</p></div><dl class="param-type"><dt>类型: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="isNumber"><span class="type-signature"></span>isNumber<span class="signature">(value)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Test whether a string represents a number</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>参数:</strong><table class="params"><thead><tr><th>名称</th><th>类型</th><th class="last">描述</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The string to test.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>返回值:</strong><div class="param-desc"><p>true if the string contains a number; false otherwise.</p></div><dl class="param-type"><dt>类型: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="isSafeNumber"><span class="type-signature"></span>isSafeNumber<span class="signature">(value, options)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Test whether a string can be safely represented with a number without information loss.</p><p>When the argument <code>approx</code> is true, floating point numbers that lose a few digits but are still approximately equal in value are considered safe too. Integer numbers must still be exactly equal.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>参数:</strong><table class="params"><thead><tr><th>名称</th><th>类型</th><th class="last">描述</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The string to test.</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The options of the test. It may contain the following properties: - <code>approx: boolean</code>: indicates whether to consider approximately equal floating point numbers as safe. Default is <code>false</code>. - <code>requiredDigits: number</code>: the number of significant digits required for a floating point number to be considered approximately equal. Default is <code>14</code>.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>返回值:</strong><div class="param-desc"><p>true if the string can be safely represented with a number; false otherwise.</p></div><dl class="param-type"><dt>类型: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="toSafeNumberOrThrow"><span class="type-signature"></span>toSafeNumberOrThrow<span class="signature">(value, options)</span><span class="type-signature"> → {number}</span></h3><div class="description"><p>Convert a string into a number when it is safe to do so. Throws an error otherwise, explaining the reason.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>参数:</strong><table class="params"><thead><tr><th>名称</th><th>类型</th><th class="last">描述</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The string to convert into a number.</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The options for conversion.</p></td></tr></tbody></table></div><div class="method-member-container mt-20"><strong>抛出异常:</strong><dl><dt><div class="param-desc"><p>When the value is not safe to convert.</p></div></dt><dd></dd><dt><dl><dt>Type</dt><dd><span class="param-type">Error</span></dd></dl></dt><dd></dd></dl></div><div class="method-member-container mt-20"><strong>返回值:</strong><div class="param-desc"><p>The converted safe number.</p></div><dl class="param-type"><dt>类型: </dt><dd><span class="param-type">number</span></dd></dl></div></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="关闭搜索"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="搜索..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">输入任何内容查看搜索结果</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><div class="mobile-nav-links"></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title"><a href="index.html" class="sidebar-home-anchor">首页</a></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-类"><div>类</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Json.html">Json</a></div><div class="sidebar-section-children"><a href="LosslessNumber.html">LosslessNumber</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-全局"><div>全局</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#getUnsafeReason">getUnsafeReason</a></div><div class="sidebar-section-children"><a href="global.html#isBigInt">isBigInt</a></div><div class="sidebar-section-children"><a href="global.html#isInteger">isInteger</a></div><div class="sidebar-section-children"><a href="global.html#isNumber">isNumber</a></div><div class="sidebar-section-children"><a href="global.html#isSafeNumber">isSafeNumber</a></div><div class="sidebar-section-children"><a href="global.html#json">json</a></div><div class="sidebar-section-children"><a href="global.html#toSafeNumberOrThrow">toSafeNumberOrThrow</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button home-button" aria-label="go-to-homepage"><svg><use xlink:href="#home-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script><script>document.addEventListener("DOMContentLoaded",(function(){"undefined"!=typeof tippy&&(tippy(".home-button",{content:"回到首页",delay:500}),tippy(".theme-toggle",{content:"切换主题",delay:500}),tippy(".search-button",{content:"搜索",delay:500}),tippy(".font-size",{content:"更改字体大小",delay:500}))}))</script></body></html>
|
package/doc/api/index.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Home</title><!--[if lt IE 9]>
|
|
2
|
-
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
3
|
-
<![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar
|
|
1
|
+
<!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Home</title><!--[if lt IE 9]>
|
|
2
|
+
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
3
|
+
<![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="home-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M19 21H5a1 1 0 0 1-1-1v-9H1l10.327-9.388a1 1 0 0 1 1.346 0L23 11h-3v9a1 1 0 0 1-1 1zM6 19h12V9.157l-6-5.454-6 5.454V19z"/></symbol><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><div class="sidebar-items-container"><div class="sidebar-section-title"><a href="index.html" class="sidebar-home-anchor">首页</a></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-类"><div>类</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Json.html">Json</a></div><div class="sidebar-section-children"><a href="LosslessNumber.html">LosslessNumber</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-全局"><div>全局</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#getUnsafeReason">getUnsafeReason</a></div><div class="sidebar-section-children"><a href="global.html#isBigInt">isBigInt</a></div><div class="sidebar-section-children"><a href="global.html#isInteger">isInteger</a></div><div class="sidebar-section-children"><a href="global.html#isNumber">isNumber</a></div><div class="sidebar-section-children"><a href="global.html#isSafeNumber">isSafeNumber</a></div><div class="sidebar-section-children"><a href="global.html#json">json</a></div><div class="sidebar-section-children"><a href="global.html#toSafeNumberOrThrow">toSafeNumberOrThrow</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button home-button" aria-label="go-to-homepage"><svg><use xlink:href="#home-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">本页内容</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section class="readme"><article><h1>增强的 JSON 解析器,支持大整数和集合</h1><p><a href="https://npmjs.com/package/@qubit-ltd/json"><img src="https://img.shields.io/npm/v/@qubit-ltd/json.svg" alt="npm package"></a><a href="https://www.apache.org/licenses/LICENSE-2.0"><img src="https://img.shields.io/badge/License-Apache-blue.svg" alt="License"></a><a href="README.md"><img src="https://img.shields.io/badge/Document-English-blue.svg" alt="English Document"></a><a href="https://dl.circleci.com/status-badge/redirect/gh/Haixing-Hu/js-json/tree/master"><img src="https://dl.circleci.com/status-badge/img/gh/Haixing-Hu/js-json/tree/master.svg?style=shield" alt="CircleCI"></a><a href="https://coveralls.io/github/Haixing-Hu/js-json?branch=master"><img src="https://coveralls.io/repos/github/Haixing-Hu/js-json/badge.svg?branch=master" alt="Coverage Status"></a></p><p><a href="https://npmjs.com/package/@qubit-ltd/json">@qubit-ltd/json</a> 是一个 JavaScript 库,它扩展了标准 JSON 对象的功能,提供了对超出 JavaScript 安全范围的大数字的强大支持。该库增强了解析和字符串化能力,使其非常适合处理大型数据集和复杂的数值操作, 同时保持 JSON 的结构。</p><h2>主要功能</h2><ul><li><strong><code>BigInt</code> 支持</strong>:在解析 JSON 字符串时,超出 JavaScript 安全整数范围的数字会自动转换为原生 <code>BigInt</code>, 确保精度不丢失。</li><li><strong><code>LosslessNumber</code> 处理</strong>:对于无法在 JavaScript 中准确表示的浮点数,该库引入了 <code>LosslessNumber</code> 对象。 这个轻量级对象以字符串形式保存完整的数值精度,允许灵活地转换为数字或 <code>BigInt</code> 进行数学运算。</li><li><strong>精确的字符串化</strong>:在字符串化过程中,<code>BigInt</code> 值会作为字符串序列化,不带 "n" 后缀,以保持与标准 JSON 格式的兼容性。 同样,<code>LosslessNumber</code> 对象使用其内部字符串表示进行序列化。</li><li><strong>集合序列化</strong>:JavaScript 原生的集合类型如 <code>Set</code> 和 <code>Map</code> 会无缝地序列化为数组,以便更好地与 JSON 结构兼容。</li></ul><p>有关为什么 JSON 解析可能会破坏大数字以及该库如何帮助解决该问题的更多详细信息,请参阅 <a href="https://jsoneditoronline.org/indepth/parse/why-does-json-parse-corrupt-large-numbers/">Why does JSON.parse corrupt large numbers and how to solve this?</a>。</p><h2>安装</h2><p>使用 npm 或 yarn 安装该库:</p><pre class="prettyprint source lang-sh"><code>npm install @qubit-ltd/json
|
|
4
4
|
</code></pre><p>或</p><pre class="prettyprint source lang-sh"><code>yarn add @qubit-ltd/json
|
|
5
5
|
</code></pre><h2>核心功能</h2><h3>类似 JSON 的对象</h3><p>该库提供了一个类似于标准 JSON 对象的对象,但具有增强的功能,用于处理大整数、浮点数以及集合类型如 Set 和 Map。</p><pre class="prettyprint source lang-javascript"><code>import Json from '@qubit-ltd/json';
|
|
6
6
|
|
|
@@ -199,4 +199,4 @@ cd js-json
|
|
|
199
199
|
</code></pre></li></ol><h3>发布流程</h3><ol><li>更新 package.json 中的版本号</li><li>运行测试和 lint 检查:<pre class="prettyprint source lang-sh"><code>yarn lint && yarn test
|
|
200
200
|
</code></pre></li><li>构建库:<pre class="prettyprint source lang-sh"><code>yarn build:all
|
|
201
201
|
</code></pre></li><li>发布到 npm:<pre class="prettyprint source lang-sh"><code>yarn deploy
|
|
202
|
-
</code></pre></li></ol><h2><span id="license">许可证</span></h2><p><a href="https://npmjs.com/package/@qubit-ltd/json">@qubit-ltd/json</a> 根据 Apache 2.0 许可证分发。详情请参阅 <a href="LICENSE">LICENSE</a> 文件。</p><h2><span id="acknowledgements">致谢</span></h2><p>该项目基于并集成了多个开源库的代码,这些库在处理大数字和自定义 JSON 解析方面做出了重要贡献。我们想特别感谢以下项目的作者:</p><ul><li><a href="https://github.com/sidorares/json-bigint">json-bigint</a>:提供对使用 BigInt 解析和字符串化 JSON 的支持,使得可以精确处理大数字。</li><li><a href="https://github.com/josdejong/lossless-json">lossless-json</a>:一个确保在处理浮点数时保持完全精度的库,提供无损的 JSON 数字处理。</li><li><a href="https://github.com/jawj/json-custom-numbers">json-custom-numbers</a>:允许在 JSON 解析和字符串化过程中自定义数字处理,提供灵活的数值表示。</li></ul><p>我们对这些贡献者的工作表示感谢,这些工作对本库功能的实现起到了至关重要的作用。</p></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="
|
|
202
|
+
</code></pre></li></ol><h2><span id="license">许可证</span></h2><p><a href="https://npmjs.com/package/@qubit-ltd/json">@qubit-ltd/json</a> 根据 Apache 2.0 许可证分发。详情请参阅 <a href="LICENSE">LICENSE</a> 文件。</p><h2><span id="acknowledgements">致谢</span></h2><p>该项目基于并集成了多个开源库的代码,这些库在处理大数字和自定义 JSON 解析方面做出了重要贡献。我们想特别感谢以下项目的作者:</p><ul><li><a href="https://github.com/sidorares/json-bigint">json-bigint</a>:提供对使用 BigInt 解析和字符串化 JSON 的支持,使得可以精确处理大数字。</li><li><a href="https://github.com/josdejong/lossless-json">lossless-json</a>:一个确保在处理浮点数时保持完全精度的库,提供无损的 JSON 数字处理。</li><li><a href="https://github.com/jawj/json-custom-numbers">json-custom-numbers</a>:允许在 JSON 解析和字符串化过程中自定义数字处理,提供灵活的数值表示。</li></ul><p>我们对这些贡献者的工作表示感谢,这些工作对本库功能的实现起到了至关重要的作用。</p></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="关闭搜索"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="搜索..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">输入任何内容查看搜索结果</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><div class="mobile-nav-links"></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title"><a href="index.html" class="sidebar-home-anchor">首页</a></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-类"><div>类</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Json.html">Json</a></div><div class="sidebar-section-children"><a href="LosslessNumber.html">LosslessNumber</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-全局"><div>全局</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#getUnsafeReason">getUnsafeReason</a></div><div class="sidebar-section-children"><a href="global.html#isBigInt">isBigInt</a></div><div class="sidebar-section-children"><a href="global.html#isInteger">isInteger</a></div><div class="sidebar-section-children"><a href="global.html#isNumber">isNumber</a></div><div class="sidebar-section-children"><a href="global.html#isSafeNumber">isSafeNumber</a></div><div class="sidebar-section-children"><a href="global.html#json">json</a></div><div class="sidebar-section-children"><a href="global.html#toSafeNumberOrThrow">toSafeNumberOrThrow</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button home-button" aria-label="go-to-homepage"><svg><use xlink:href="#home-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script><script>document.addEventListener("DOMContentLoaded",(function(){"undefined"!=typeof tippy&&(tippy(".home-button",{content:"回到首页",delay:500}),tippy(".theme-toggle",{content:"切换主题",delay:500}),tippy(".search-button",{content:"搜索",delay:500}),tippy(".font-size",{content:"更改字体大小",delay:500}))}))</script></body></html>
|