json-parse- even- better- errors (日语) (英语)
json-parse-even-better-errors
是一个节点js 库,用于调出更好的错误 JSON.parse(), (中文(简体) ),
包括分析错误的背景和位置.
它还保留了JSON数据的新线和缩进样式,由
将它们放入对象或阵列中 Symbol.for('indent') 财务报告和审定财务报表
Symbol.for('newline') 属性.
安装
$ npm install --save json-parse-even-better-errors
目录
示例
const parseJson = require('json-parse-even-better-errors')
parseJson('"foo"') // returns the string 'foo'
parseJson('garbage') // more useful error message
parseJson.noExceptions('garbage') // returns undefined
特征
- 像JSON.parse, 但错误是更好的.
- 脱去一个主字节顺序标记,您有时会读取文件 .
- 有个
noExceptions返回未定义而不是投掷的方法. - 将新行字符附加到
Symbol.for('newline')在对象和阵列上. - 附加缩进字符
Symbol.for('indent')在对象和阵列上.
缩进
要保存文件保存回磁盘时的缩进, 使用
data[Symbol.for('indent')] 作为第三个参数 JSON.stringify,以及
如果您想要保存窗口 \r\n 新行,替换 \n 字符输入
字符串为 data[Symbol.for('newline')]。 。 。 .
例如:
const txt = await readFile('./package.json', 'utf8')
const data = parseJsonEvenBetterErrors(txt)
const indent = Symbol.for('indent')
const newline = Symbol.for('newline')
// .. do some stuff to the data ..
const string = JSON.stringify(data, null, data[indent]) + '\n'
const eolFixed = data[newline] === '\n' ? string
: string.replace(/\n/g, data[newline])
await writeFile('./package.json', eolFixed)
缩进是通过查看初始值之间的空白来决定的
{ 财务报告和审定财务报表 [ 以及随之而来的角色。 如果你有很多怪事的话
不一致的缩进, 然后它不会跟踪 或给你任何方式
留着它。 这是错误还是特性可争论;)
API 密码
parse(txt, reviver = null, context = 20)
就是这样 JSON.parse,但将包含一些更多信息,当
发生错误,并附加 Symbol.for('indent') 财务报告和审定财务报表
Symbol.for('newline') 在对象和阵列上。 丢出一个
JSONParseError。 。 。 .
parse.noExceptions(txt, reviver = null)
就是这样 JSON.parse,但会回来 undefined 而不是说
丢出一个错误.
class JSONParseError(er, text, context = 20, caller = null)
扩展 Java 脚本 SyntaxError 分类以解析消息并提供
更好的元数据.
传入内置出的错误 JSON.parse,文本为
解析,它会分析出 需要帮助的比特.
context 默认为 20.
设置 a caller 功能将内部执行细节从
堆栈跟踪。 打电话时 parseJson,这个设定为 parseJson
函数。 如果不设定,则构造者会自行默认,因此
堆栈跟踪将指向您调用的地方 new JSONParseError。 。 。 .