【问题标题】:Unable to print complete JSON using console.log无法使用 console.log 打印完整的 JSON
【发布时间】:2017-06-29 16:12:06
【问题描述】:
  • 我正在尝试将 JSON 文件导入 Sample 变量,但 Sample 变量只显示前几个字符。
  • sample.json 为 20,00,000 个字符,当我在 Console 上打印 Sample 变量时,仅打印前 3,756 个字符。通过 console.log 可以打印的字符是否有任何限制?
  • 完整的数据保留在Sample variable 中,我通过搜索出现在sample.json 文件末尾的字符串来验证它

    var Sample = require('./sample.json');
    export default class proj extends Component {
      constructor(props) {
        super(props);
        this.state = {
          locations: [],
        };
      }
    
      loadOnEvent() {   
          console.log(Sample);
         //this.state={ locations : Sample };
      }
    }
    

有没有其他方法可以打印Sample变量中的数据。

【问题讨论】:

    标签: json react-native


    【解决方案1】:

    尝试使用其他方式加载。如果文件是远程的,则使用fetch;如果文件是本地的,则使用fs

    如果是@Shota 假设的内存问题,请考虑使用服务器端处理对 json 文件的请求。设置微服务在启动时加载 json 文件并处理对从 json 文件解析的数据结构的请求是一个很好的解决方案。


    webpack 用例答案:

    将 webpack 配置为使用 file-loadercopy-webpack-plugin 专门用于此文件,因为它足够大。考虑与 webpack bundle 并行加载。如果您的应用程序有很大的部分不需要每种情况,则必须将它们移至separated bundles

    【讨论】:

    • 我应该从这个 URL 安装 webpack:npmjs.com/package/react-native-webpack
    • 我混淆了标签,我只看到webpack 标签,并没有检查那个问题有标签react-native。看来你还有一个问题。我将删除答案。 (尝试使用其他方式加载fsfetch)。如果 fsfetch 有帮助 - 请留下反馈。
    • 好的,谢谢,我尝试了 fetch 但无法使用它加载本地文件
    • 请检查更新的问题,问题似乎出在 console.log @oklas
    • 可能是控制台有一些限制或者是错误。你是不是要揭露它。为什么需要输出完整数据? (尝试部分输出)例如浏览器显示部分数据,但其控制台是交互式的并且可以扩展。在大多数情况下拉这么大的文件并不是一个好主意,考虑创建微服务。
    【解决方案2】:

    您必须在记录之前使用JSON.stringify 将 json 转换为字符串。

    /* ... */
      loadOnEvent() {   
          console.log(JSON.stringify(Sample));
         //this.state={ locations : Sample };
      }
    /* ... */
    

    【讨论】:

    • 是否可以解析成字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 2017-09-20
    • 2016-05-27
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多