目前我正在尝试区分不同的序列化文本格式.主要介于XBRL,XML,CSV和
JSON之间.
我想假设,按步骤检查,如果我们使用解析器来解析XBRL / XML并返回而没有抛出任何异常,那么它是一个有效的XML文档,需要进一步检查文档是否是常规xml或XBRL.
如果第一次检查失败,请尝试解析csv.如果解析csv会返回异常,请尝试解析为JSON.如果以上都不起作用,则它是无效的文档.
这是识别文档格式的特殊方式吗?或者,还有更好的方法? (即阅读文档的前几个字节等…).
谢谢
解决方法
如果您知道JSON将是一个对象或数组,并且该内容必须是这四个中的一个……
if(content.charat(0) == "[" || content.charat(0) == "{") { // JSON } else if(content.charat(0) == "<") { if(content.indexOf("xmlns=\"http://www.xbrl.org/2001/instance\"") >= 0) { // XBRL } else { // XML } } else { // CSV ?... // first remove strings var testCSV = content.replace("\"\"",""); // remove escaped quotes testCSV = testCSV.replace(/".*?"/g,""); // match-remove quoted strings var lines = testCSV.split("\n"); if(lines.length === 1 && lines[0].split(",").length > 1) { // only 1 row so we can only verify if there is two or more columns // CSV } else if(lines.length > 1 && lines[0].split(",").length > 1 && lines[0].split(",").length === lines[1].split(",").length) { // we kNow there's multiple lines with the same number of columns // CSV } // can't be sure what it is // ??? }
以上将给你一个合理的确定性.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。