获取本地json文件

本文介绍了在Vue项目中获取本地JSON文件的三种方式:直接在Vue组件中引用,使用axios发起GET请求,以及通过require引入。特别指出在Vue CLI 3.0以后,静态资源需放在public目录下,以避免404错误。
摘要由CSDN通过智能技术生成

方法一:vue中获取本地json文件

//通过json文件路径引入
import jsonData from './***.json'
//定义一个变量用于接收数据
data() {
    return {
      commonJson: {},
   }
}
//接收数据
mounted() {
    this.commonJson= jsonData 
    console.log(this.commonJson) 
},

方法二:使用axios发起get请求获取对应的json文件数据

import axios from 'axios'  // 安装axios后引入
Vue.prototype.$axios = axios  // 将axios挂载到原型上方便使用
 
// 使用get请求获取到test.json文件的数据
this.$axios.get('./test.json').then(res => {   
    console.log(res)
})

请求报404错误,原因是vue-cli3.0之后创建的项目静态资源都放在了根目录下的public目录下,因此需要将json文件建在public目录下即可

// json文件放在public下
// 访问路径不用带public ,直接访问public下的文件即可
this.$axios.get("./data/test.json", {}).then(response => {
  console.log(response)
}// json文件放在static下
// 访问路径带static
this.$axios.get("./static/data/test.json", {}).then(response => {
  console.log(response)
}

方法三:在vue文件通过require引入

let data = require('路径')
### 如何用编程语言读取本地 JSON 文件 #### 使用 JavaScript (jQuery) 读取本地 JSON 文件 当使用 jQuery 来处理本地 JSON 文件时,可以利用 AJAX 请求获取文件内容。需要注意的是,在浏览器环境中直接通过 XMLHttpRequest 或 Fetch API 访问本地文件可能会受到同源策略限制。 ```javascript $.ajax({ url: 'data/example.json', // 设置要请求JSON文件路径 dataType: 'json', success: function(data){ console.log('成功加载的数据:', data); }, error:function(){ alert("无法获取数据"); } }); ``` 此代码片段展示了如何通过 `$.ajax()` 方法发送异步 HTTP 请求并解析返回的结果作为 JSON 对象[^1]。 对于跨域问题,如果服务器端支持 CORS,则可以直接设置响应头允许来自特定域名或所有域名的访问;如果不涉及实际网络请求而是纯粹本地环境下的操作,某些情况下可以通过配置 Web 浏览器的安全选项绕过这些限制。 另外一种方式是在 HTML 中嵌入 `<script>` 标签并通过回调函数接收 JSON 数据: ```html <script> function train(jsonData){ console.log('接收到的数据:', jsonData); } </script> <!-- 假设 user.json 是有效的 JSONP 脚本 --> <script src="data/user.json?cb=train"></script> ``` 这种方式适用于需要解决跨域资源加载的情况,并且服务端需配合提供相应的 JSONP 支持[^2]。 #### Android Java/Kotlin 读取本地 JSON 文件 在 Android 应用中可以从 assets 目录或其他存储位置读取 JSON 文件的内容。下面是一个简单的 Kotlin 示例说明了这一过程: ```kotlin import org.json.JSONObject import java.io.BufferedReader import java.io.InputStreamReader fun readJsonFromAsset(context: Context): JSONObject { val assetManager = context.assets val inputStream = assetManager.open("example.json") // 打开assets目录中的JSON文件 val bufferedReader = BufferedReader(InputStreamReader(inputStream)) val stringBuilder = StringBuilder() var line: String? while ({line = bufferedReader.readLine(); line}() != null) { stringBuilder.append(line) } return JSONObject(stringBuilder.toString()) } ``` 这段代码首先打开了位于应用程序资产 (`assets`) 文件夹内的 JSON 文件,接着逐行读取其内容直到结束,最后将整个字符串转换成一个 `JSONObject` 实例以便进一步处理[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值