uni-app读取本地json数据文件,并渲染到页面上。

前言

uni-app读取本地json数据文件,有下面两种方式可以实现:

  • 文件后缀为.json类型
  • 文件后缀为.js类型

具体演示代码

1、文件后缀为.json类型

非H5端,这种类型的文件,目前只能使用require进行导入,导入后为一个对象类型。import无法导入json文件。

① 在项目根目录下,新建一个目录data。

② 在data目录下,新建一个cityData.json文件,写上本地模拟json数据,注意文件后缀为json。

// cityData.json
// 必须是""格式,否则报错
[
  {"id":"1","city":"深圳"}, {"id":"2","city":"广州"}
]

③ 在index.vue页面引入并使用。

<template>
  <view v-for="item in localData">
    <text>{{item.name}}</text>
  </view>
</template>

<script>
  const cityData = require('@/data/cityData.json')
  export default {
    data() {
      return {
        localData: cityData
      }
    },
    onLoad() {
      console.log('cityJson:'+JSON.stringify(cityData));
      //=>cityJson:[{id:'',city:''},{id:'',city:''}]
    }
  }
</script>

H5端,可以引入jq,使用jq的AJAX读取本地的json文件。

$.getJSON('../../data/cityData.json').then((res)=>{
  console.log('cityJson:'+JSON.stringify(res));
});
//=>cityJson:[{id:'',city:''},{id:'',city:''}]

2、文件后缀为.js类型

在js文件中写入json数据,使用export导出。在需要的页面中用import方式进行导入,import无法导入json文件。实现如下:

① 在项目根目录下,新建一个目录data。

② 在data目录下,新建一个data.js文件,注意文件后缀为js。

③ 在data.js页面中写上本地模拟json数据,并导出。

④ 在index.vue页面引入并使用。

方式1

// data.js
const cityData = [
  {id:'1',city:'深圳'}, {id:'2',city:'广州'},
]
module.exports = {
  cityData: cityData
}


// index.vue
<template>
  <view v-for="item in localData">
    <text>{{item.city}}</text>
  </view>
</template>

<script>
  import data from "@/data/data.js"
  export default {
    data() {
      return {
        localData: data.cityData
      }
    },
  }
</script>

方式二(推荐)

// data.js
const cityData = [
  {id:'1',city:'深圳'}, {id:'2',city:'广州'},
]
function refresh(){
 return ''
}
export {
  cityData,
  refresh
}


// index.vue
<template>
  <view v-for="item in localData">
    <text>{{item.city}}</text>
  </view>
</template>

<script>
  import {cityData, refresh} from "@/data/data.js"
  export default {
    data() {
      return {
        localData: cityData
      }
    },
    onLoad() {
      console.log(refresh())
      console.log(JSON.stringify(cityData))
    },
  }
</script>

注意事项

uni.request()是无法读取本地的js文件和json文件的,jq是能读取的,但是jq只能在H5端引入使用。

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在uni-app中将JSON数据保存为txt文件,可以通过以下步骤完成: 1. 首先,将json数据转换为字符串格式。可以使用JSON.stringify()方法将json对象转换为字符串。 2. 接下来,创建一个FileWriter对象来操作文件。使用uni.getFileSystemManager()方法获取文件系统管理器对象,并使用它的writeFile()方法创建一个新的txt文件。 3. 在writeFile()方法中,传入文件路径、要写入的内容和编码格式等参数。可以选择在应用的本地文件系统中创建一个新的文件,例如在uni-app的根目录下创建一个名为data.txt的文件。 4. 最后,通过回调函数来处理文件写入操作的结果。可以在回调函数中处理成功和失败时的逻辑。 以下是代码示例: ```javascript // 将json数据保存为txt文件 function saveAsTxt(jsonData) { try { // 将json转化为字符串 let jsonStr = JSON.stringify(jsonData); // 获取文件系统管理器对象 const fs = uni.getFileSystemManager(); // 创建txt文件,并写入内容 fs.writeFile({ filePath: `${uni.env.USER_DATA_PATH}/data.txt`, // txt文件路径 data: jsonStr, // 要写入的内容 encoding: 'utf-8', // 编码格式 success: function () { console.log('保存成功'); // 成功时的逻辑处理 }, fail: function () { console.log('保存失败'); // 失败时的逻辑处理 } }); } catch (e) { console.log(e); } } ``` 在上述示例中,通过调用saveAsTxt()函数,将json数据保存为名为data.txt的txt文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值