将Middleman数据文件夹中的JSON文件解析为Javascript文件作为数组

时间:2016-05-10 06:08:20

标签: javascript jquery ruby json middleman

很抱歉,如果这是超级基础和我的Middleman newb,但我试图将JSON文件放在我的数据文件夹中,将数据解析为Javascript文件(我使用的是jQuery),然后将它用于SoundManager2。

我已经在互联网上完成了我的研究,寻找答案,以及我在哪里:

我在Middleman的数据文件夹中的JSON文件

{ 
  "sound": [ 
    { 
    "name": "Holidead",
    "url": "https://dl.dropboxusercontent.com/u/80054631/music/Holidead.mp3" 
    },
    { 
    "name": "Where Did It All Go",
    "url": "https://dl.dropboxusercontent.com/u/80054631/music/Where%20Did%20It%20All%20Go_1.mp3" 
    },
    { 
    "name": "When We Ride",
    "url": "https://dl.dropboxusercontent.com/u/80054631/music/When%20We%20Ride.mp3" 
    } 
  ] 
}

然后在config.rb中,我尝试在文件的底部执行此操作:

string = File.read('data/soundlist.json')
json = JSON.parse(string)

所以我的问题是如何将config.rb中的解析与Javascript文件连接以读取jquery Ajax中的JSON文件?我想将数据转换为数组并使用URL与SoundManager2播放声音。我相信我错过了Ruby文件和JS文件之间的一些步骤。

1 个答案:

答案 0 :(得分:1)

  

我相信我在Ruby文件和JS文件之间缺少一些步骤。

完全!您可以拥有 .html.erb 文件,这些文件将在处理<%= %> 文件时由中间人处理。

中的任何内容
config.rb

将被评估

将其放入string = File.read('data/soundlist.json') config[:json] = JSON.parse(string)

.js.erb

让文件名具有扩展名json-data.js.erb。说var json_data = <%= config[:json] %>; console.log('json_data');

middleman build

现在使用

构建项目
build/json-data.js

如果选中json_data,则可以看到变量"resources": [ // WebApp { "apiVersion": "2015-08-01", "name": "[parameters('siteName')]", "type": "Microsoft.Web/sites", "location": "[parameters('siteLocation')]", "dependsOn": [ ], "properties": { "name": "[parameters('siteName')]", "serverFarmId": "[parameters('hostingPlanName')]", "siteConfig": { "alwaysOn": true } }, "resources": [ { "apiVersion": "2015-08-01", "name": "Staging", "type": "slots", "location": "[parameters('siteLocation')]", "dependsOn": [ "[resourceId('Microsoft.Web/Sites', parameters('siteName'))]" ], "resources": [ { "name": "DeployPackage", "type": "extensions", "location": "[parameters('siteLocation')]", "apiVersion": "2015-08-01", "dependsOn": [ "Staging" ], "properties": { "packageUri": "[parameters('packageURI')]" } } ] } ] } ] 具有json值。